Mikroprocesorová a řídicí technika
Ing. Michal Prauzek, Ph.D. zimní semestr 2015/2016
Organizační informace
Garant předmětu a přednášející: Ing. Michal Prauzek, Ph.D Cvičení: Ing. Markéta Venclíková Kontakt:
[email protected], (59732) 5857, místnost EA340 Konzultace: Úterý 14-15h, EA340 Web: http://homel.vsb.cz/~pra132/
Zápočet: Samostatný projekt (20b) – minimum 5b Písemka (20b) – minimum 5b
Zkouška Písemná (20b) – minimum 10b Ústní (40b) – minimum 5b 2
www.vsb.cz
Harmonogram semestru
3
15.9. – Úvodní přednáška 22.9. – Mikrokontrolér 29.9. – C pro mikrokontroléry I. 6.10. - C pro mikrokontroléry II. 13.10. – ARM Cortex M 20.10. – Digitální vstupy a výstupy 27.10. – Přerušení a časovače 3.11. – A/D, D/A převodníky 10.11. – Komunikační rozhraní 24.11. – Uživatelská rozhraní 1.12. – Příprava na samostatný projekt 8.12. – Zápočtový test 15.12. – První termín zkoušky
www.vsb.cz
Přednáška 1
4
Náplň přednášky 1
5
Úvod do mikroprocesorové a řídicí techniky Typy řídicích systému a jejich realizace Digitální technika Číselné soustavy Kódování
www.vsb.cz
Oblasti specializace elektroinženýra
6
www.vsb.cz
Zákon č. 96/2004 Sb. § 27 Odborná způsobilost k výkonu povolání biomedicínského inženýra (1) Odborná způsobilost k výkonu povolání biomedicínského inženýra se získává absolvováním a) akreditovaného zdravotnického magisterského studijního oboru pro přípravu biomedicínských inženýrů, nebo b) akreditovaného magisterského studijního oboru elektrotechnického zaměření a akreditovaného kvalifikačního kurzu biomedicínské inženýrství (2) Do doby získání specializované způsobilosti biomedicínský inženýr pracuje ve zdravotnickém zařízení pod odborným dohledem pracovníka způsobilého k výkonu povolání bez odborného dohledu, z toho prvních 6 měsíců pod jeho přímým vedením.
(3) Za výkon povolání biomedicínského inženýra se považuje činnost v rámci diagnostické a léčebné péče ve spolupráci s lékařem.
7
www.vsb.cz
Nutné znalosti pro tento předmět Znalosti:
10
Ohmova zákona Kirchhoffových zákonů Pasivních součástek: rezistor, kondenzátor a cívka Polovodičového přechodu, polovodičové diody Funkce bipolárního a unipolárního transistoru Měření s multimetrem a osciloskopem Popisu signálu a jeho vlastností
www.vsb.cz
Co použít pro řízení?
11
www.vsb.cz
Osobní počítač (PC) Výhody: Vysoký výkon Velká operační paměť Velký úložný prostor
Nevýhody:
Vysoká spotřeba (běžně 200-600W) Malá spolehlivost Vysoká cena Velké rozměry
Použití: Běžná kancelářská činnost Zábava, multimédia 12
www.vsb.cz
Průmyslové počítače (Industrial PC) Výhody: Vysoký výkon a velká paměť Odolnost vůči okolí a rušení Vyšší spolehlivost
Nevýhody: Obyčejný operační systém Velmi vysoká cena
Použití: Průmyslová automatice Náročné prostředí
13
www.vsb.cz
PLC (Programmable Logic Controller) 14
Automatizace procesů v reálném čase Řízení strojů nebo výrobních linek v továrně. Malý průmyslový počítač Průmyslové provedení - odolné Standardní HW Velmi spolehlivé Malá spotřeba Program se vykonává v tzv. cyklech Ustálené programovací jazyky www.vsb.cz
Vestavěný řídicí systém Anglicky: Embedded system Je jednoúčelový systém zcela zabudován do zařízení, které ovládá. Je maximálně optimalizovaný pro danou aplikaci (výkon, spolehlivost …). Většina aplikací kolem nás je vestavěných: bankomaty, kalkulátory, prodejní automaty, palubní počítače, mobilní telefony … I ve zdravotnictví je většina elektroniky realizována vestavěným řídicím systémem: infuzní pumpy, EKG monitory, defibrilátory, dialýzy …
15
www.vsb.cz
Digitální technika Pracuje se signály ve formě číslicových dat
16
www.vsb.cz
Logické operace Základní logické operace:
17
NOT – negace AND – logický součin OR – logický součet NAND – negovaný logický součin NOR – negovaný logický součet XOR – exkluzivní logický součet XNOR – negovaný logický součet
www.vsb.cz
Logické obvody Rozdělujeme na: Kombinační: výstup závisí pouze na kombinací vstupů Sekvenční: výstup závisí na kombinaci vstupů a předchozím stavu
Dále rozdělujeme na: Synchronní: obsahují synchronizační hodinový signál Asynchronní: neobsahují synchronizační hodinový signál
18
www.vsb.cz
Klopné obvody Klopné obvody kopírují základní logické funkce
19
www.vsb.cz
Sekvenční obvody Základní sekvenční obvody: RS obvod JK obvod D obvod
20
www.vsb.cz
Číselné soustavy Číselná soustava je způsob reprezentace čísel Poziční Nepoziční
Poziční číselné soustavy 21
Jedničková (unární) Dvojková (binární) Osmičková (oktální) Desítková (decimální) Dvanáctková Šestnáctková (hexadecimální) Šedesátková www.vsb.cz
Binární soustava Binární soustava používá pouze dva stavy, 0 a 1 Stavy v soustavě odpovídají stavům vypnuto a zapnuto
Kdy používáme: Zápis konfigurace Zápis binárních dat
22
www.vsb.cz
Decimální soustava Nejběžnější používaná soustava Pro zápis čísel používá symboly 0,1,2,3,4,5,6,7,8,9.
Kdy používáme: Zápis běžných dat Určení počtu
23
www.vsb.cz
Hexadecimální soustava Hexadecimální čísla se zapisují pomocí číslic '0', '1', '2', '3', '4', '5', '6', '7', '8' a '9' a písmen 'A', 'B', 'C', 'D', 'E' a 'F', přičemž písmena 'A'–'F' reprezentují cifry s hodnotou 10–15) Kdy používáme: Výpis dat paměti Konfigurační data
24
www.vsb.cz
Uložení dat
1 bit (1b) = jedna informace 8 bitů (8b) = 1 byte (1B) 16 bitů (16b) = word (2B) – slovo 32 bitů (32b) = double word (4B) – dvojnásobné slovo
1kB = 1024B 1MB = 1024kB = 1048576B
25
www.vsb.cz
Přímý kód Zobrazení absolutní hodnoty čísla ve dvojkové soustavě Nejvyšší bit udává znaménko čísla Číslo 0 má dva obrazy Rozsah zobrazitelných číslic je symetrický
26
www.vsb.cz
Dvojkový doplněk Postup kódování je ten, že od absolutní hodnoty kódovaného záporného čísla je odečtena jednička, číslo je převedeno do dvojkové soustavy a je provedena jeho negace. (Stejného výsledku lze dosáhnout, pokud je absolutní hodnota nejprve převedena do dvojkové soustavy, negována a nakonec je ve dvojkové soustavě přičtena jednička.)
27
Dvojkový doplněk
Desítkově
0111
7
0110
6
0101
5
0100
4
0011
3
0010
2
0001
1
0000
0
1111
−1
1110
−2
1101
−3
1100
−4
1011
−5
1010
−6
1001
−7
1000
−8 www.vsb.cz
ASCII tabulka ASCII je anglická zkratka pro American Standard Code for Information Interchange
28
www.vsb.cz
Děkuji za pozornost
30
www.vsb.cz
Přednáška 2
31
Náplň přednášky 3
32
Struktura a funkce výpočetního systému. Základní jednotky počítače. Operační paměť. Vnitřní a vnější paměti. Architektury, procesorů CISC a RISC. Vnitřní stavba jednotek počítače, délka slova, instrukční soubor.
www.vsb.cz
Procesor vs. Mikroprocesor Procesor Procesor = CPU Central Processing Unit je základní součástí počítače. ( "srdce" nebo "mozek" počítače) Čte z paměti instrukce a na jejich základě vykonává program. Každý procesor má svůj vlastní jazyk - tzv. strojový kód (skládá z jednodušších nebo složitějších instrukcí)
Mikroprocesor První procesory: množství diskrétních součástek (elektronek nebo tranzistorů, rezistorů,…) 70 léta procesor složen z několika desítek nebo stovek integrovaných obvodů Základní obvody procesoru integrovány do jednoho integrovaného obvodu -> mikroprocesor
33
www.vsb.cz
Mikroprocesor vs. Mikrokontrolér Mikroprocesor : Řadič + ALU (+ operační paměť) Řadič nebo řídicí jednotka – jádro - řízení činnosti procesoru , Sada registrů (v řadiči) k uchování operandů a mezivýsledků. ( čítač instrukcí, stavové registry, registr vrcholu zásobníku, indexregistry Jedna nebo více aritmeticko logických jednotek (ALU - Arithmetic-Logic Unit), které provádí s daty příslušné aritmetické a logické operace. Jedna nebo více FPU - jednotka plovoucí čárky
Mikrokontrolér (MCU, uC) současně integrovány základní periferní obvody. jádro mikroprocesoru, paměťi (RAM, ROM, EEPROM, FLASH, čítače a časovače, ADC a podobně na jediném čipu schopen samostatné funkce bez přídavných periférií - obsahuje kompletní mikropočítač 34
www.vsb.cz
Historie mikroprocesorů
35
1971 -Intel 4004 -první mikroprocesor -4bitový 1972 -Intel 8008 -8bitový mikroprocesor 1974 -Intel 8080 -8bitový mikroprocesor, který se stal základem prvních 8bitových osobních počítačů 1975 -MOS Technology 6502 -8bitový mikroprocesor, montovaný do Apple II, Commodore64 a Atari 1975 -Motorola 6800 -první procesor firmy Motorola 1975 -AMD nastupuje na trh s řadou Am2900 1976 -TI TMS 9900 -16bitový mikroprocesor 1976 -ZilogZ80 -8bitový mikroprocesor, s rozšířenou instrukční sadou Intel 8080, frekvence až 10 MHz 1978 -Intel 8086 -16bitový mikroprocesor, první z architektury x86 1978 -Intel 8088 -16bitový mikroprocesor s 8bitovou sběrnicí, který byl použit v prvním IBM PC v roce 1981 1979 -Motorola 68000 -32/16bitový mikroprocesor 1979 -ZilogZ8000 -16bitový mikroprocesor 1980 -IBM 801 -24bitový experimentální procesor s revoluční RISC architekturou dosahující vynikajícího výkonu 1980 -Intel 8051 -8bitový mikroprocesor se základní sadou periferií pro emebeddedsystémy 1982 -Intel 80286 -16bitový mikroprocesor 1983 -TMS32010 -první DSP firmy Texas Instruments 1985 -Intel 80386 -32bitový mikroprocesor (měl 275 000 tranzistorů) 1986 -AcornARM -32bitový RISC mikroprocesor, z AdvancedRISC Machine, původně AcornRISC Machine, použit i v domácích počítačích 1989 -Intel 80486 -32bitový mikroprocesor s integrovaným matematickým koprocesorem 1989 -Sun SPARC -32bitový RISC mikroprocesor, z Scalable(původně Sun ProcessorARChitecture) 1992 -DEC Alpha-64bitový RISC mikroprocesor
www.vsb.cz
Historie mikroprocesorů
36
1992 -Siemens 80C166 -16bitový mikroprocesor pro průmyslové embeddedsystémy s bohatou sadou periferií 1993 -Intel Pentium -32bitový mikroprocesor nové generace (3,3 milionu tranzistorů 1995 -Intel Pentium Pro -32bitový mikroprocesor nové generace pro servery a pracovní stanice (5,5 milionu tranzistorů) 1995 -Sun UltraSPARC-64bitový RISC mikroprocesor 1996 -Intel Pentium MMX 32bitový první se sadou instrukcí MMX pro podporu 2D grafiky 1997 -Intel Pentium II -32bitový mikroprocesor nové generace s novou sadou instrukcí MMX (7,5 milionu tranzistorů) 1997 -Sun picoJava-mikroprocesor pro zpracování Java bytekódu 1997 -AMD K6-2 -32bitový první se sadou instrukcí pro podporu 3D grafiky 3DNow! 1999 -AMD K6-III -32bitový poslední procesor do základní desky se super socket7. Od této chvíle již nemá Intel a AMD procesory do stejného socketu. 1999 -Intel Pentium III -32bitový mikroprocesor nové generace s novou sadou instrukcí SIMD známou jako SSE (9,5 milionu tranzistorů) 1999 -Intel Celeron-32bitový mikroprocesor odvozený původně od Intel Pentium II pro nejlevnější PC 2000 -AMD AthlonK75 První procesor s frekvencí 1GHz 2000 -Intel Pentium 4 -32bitový mikroprocesor s řadou technologií orientovaných na dosažení vysoké frekvence 2001 -Intel Itanium-64bitový mikroprocesor nové generace pro servery 2001 -AMD Opteron-64bitový mikroprocesor nové generace pro servery od AMD. Jedná se o historicky nejkvalitnější procesor, jaký kdy AMD vyrobilo. 2003 -AMD Athlon64 -64bitový mikroprocesor nové generace pro desktopy s instrukční sadou AMD64, zpětně kompatibilní s x86 2006 -Intel Core-64bitová architektura, na které jsou postaveny procesory CoreDuo, Core2 Duo, CoreSolo, Core2 Quad 2007 -Společnost AMD uvádí novou řadu procesorů Phenom 2008 -Intel Corei7 -nová řada CPU od Intelu pod názvem Nehalema AMD PhenomII, který staví na 45 nmvýrobě 2010 -Intel vydává slabší a ořezanější procesory Corei3 a Corei5 postavené na architektuře Nehalema AMD vydává svůj první šestijádrovýprocesor PhenomII X6 2011 -Intel vydává novou architekturu SandyBridgea AMD vydává první procesory s integrovanou grafikou
www.vsb.cz
Aritmeticko-logická jednotka Aritmeticko-logická jednotka (ALU podle anglického arithmetic logic unit) je jedna ze základních komponent počítačového procesoru, ve které se provádějí všechny aritmetické (např. sčítání, násobení, bitový posuv, …) a logické (logický součin, negace, …) výpočty. V mnoha dnešních procesorech je na jednom procesoru více než jedna ALU, obvykle rozdělené na jednotky pro práci s celočíselnými operandy a jednotky pro práci s operandy v plovoucí řádové čárce (ty se někdy neoznačují jako ALU, ale jako FPU, floating-point unit). Jednotlivé ALU pracují relativně nezávisle, takže procesor může v jednom hodinovém taktu provést více instrukcí ve více jednotkách současně. 37
www.vsb.cz
Aritmeticko-logická jednotka
38
www.vsb.cz
Sběrnice Sběrnice (anglicky bus) je skupina signálových vodičů, kterou lze rozdělit na skupiny řídicích, adresových a datových vodičů v případě paralelní sběrnice nebo sdílení dat a řízení na společném vodiči (nebo vodičích) u sériových sběrnic. Sběrnice má za účel zajistit přenos dat a řídicích povelů mezi dvěma a více elektronickými zařízeními. Přenos dat na sběrnici se řídí stanoveným protokolem.
39
www.vsb.cz
Elektronická paměť Elektronická paměť je součástka, zařízení nebo materiál, který umožní uložit obsah informace (zápis do paměti), uchovat ji po požadovanou dobu a znovu ji získat pro další použití (čtení paměti).
40
www.vsb.cz
Typy paměti Dle zápisu a čtení Paměť pouze pro čtení (ROM – read only memory) Programovatelné paměti (PROM, EPROM, EEPROM) Paměť pro zápis a čtení (RWM – read write memory)
Dle přístupu Paměť s náhodným přístupem (RAM – random access memory) Paměť se sekvenčním přístupem (LIFO, FIFO, CD …)
Dle energetické závislosti Paměti vyžadující pro zachování informace přísun energie Paměti nevyžadující pro zachování informace přísun energie
41
www.vsb.cz
Operační paměť Operační paměť je volatilní (nestálá) vnitřní elektronická paměť číslicového počítače typu RWM-RAM, určená pro dočasné uložení zpracovávaných dat a spouštěného programového kódu. Tato paměť má obvykle rychlejší přístup než vnější paměť (např. pevný disk). Tuto paměť může procesor adresovat přímo, pomocí podpory ve své instrukční síti
42
www.vsb.cz
Von Neumannova architektura Von Neumannova architektura popisuje počítač se společnou pamětí pro instrukce i data. To znamená, že zpracování je sekvenční oproti například harvardské architektuře, která je typickým představitelem paralelního zpracování. Procesor počítače se skládá z řídící a výkonné (aritmeticko-logické) jednotky. Řídící jednotka zpracovává jednotlivé instrukce uložené v paměti, přičemž jejich vlastní provádění nad daty má na starosti aritmeticko-logická jednotka. Vstup a výstup dat zajišťují vstupní a výstupní jednotky. 43
www.vsb.cz
Hardward architektura U harvardské architektury není potřeba mít paměť stejných parametrů a vlastností pro data a pro program. Paměti můžou být naprosto odlišné, mohou mít různou délku slova, časování, technologii a způsob adresování. V některých systémech se pro paměť programu používá typ paměti ROM (read only memory), přičemž paměť dat vyžaduje typ paměti RWM (Read-Write Memory). Dvojí paměť umožňuje paralelní přístup k oběma pamětem, což zvyšuje rychlost zpracování. Umístění programu v paměti ROM může významně přispět k bezpečnosti systému (program nelze modifikovat). 44
www.vsb.cz
Architektury počítačů
45
www.vsb.cz
Počítače CISC CISC (anglicky Complex Instruction Set Computer) označuje v informatice skupinu procesorů vyznačujících se podobným návrhem sady strojových instrukcí. Označení complex vyjadřuje skutečnost, že strojové instrukce pokrývají velmi široký okruh funkcí, které by jinak šly naprogramovat pomocí jednodušších již obsažených strojových instrukcí (například násobení je možné nahradit sčítáním a bitovými posuny).
46
www.vsb.cz
Počítače RISC RISC (anglicky Reduced Instruction Set Computing, výslovnost risk) označuje v informatice jednu z architektur mikroprocesorů. RISC označuje procesory s redukovanou instrukční sadou, jejichž návrh je zaměřen na jednoduchou, vysoce optimalizovanou sadu strojových instrukcí, která je v protikladu s množstvím specializovaných instrukcí ostatních architektur (například u RISC například neexistuje instrukce pro násobení, které se realizuje softwarově pomocí jednoduchých instrukcí sčítání a bitových posunů). 47
www.vsb.cz
RISC vs. CISC
48
www.vsb.cz
Programátorský model Programátorský model umožnuje popsat hardware pro tvoření programu
49
www.vsb.cz
Příklad architektury HCS08 50
40-MHz HCS08 CPU BDM (Background debugging system) Breakpointy 32 zdrojů přerušení interrupt/reset Energetický úsporné režimy: wait a 3x stop Systemováochrana (reset) : Hlídací pes (COP) Ochrana proti podpětí Rozpoznání nepovolené instrukce Rozpoznání nepovolené adresy FLASH paměť na čipu RAM paměť na čipu 8-kanálový , 10-bit (ATD 2 x SCI (Serialcommunicationinterface) 1 x SPI (Serial peripheral interface module) Zdroj hodinového signálu (vnitřní, krystal, rezonatornebo vnější zdroj) IIC sběrnice(Inter-integrated circuit bus) do 100 kbps 1x 3-kanálový a x1 5-kanálový 16-bit časovač (IC, OC, PWM) 8-pin keyboard interrupt module (KBI) 16 vysoce-proudové výstupy www.vsb.cz
Zpracování instrukcí Jednoduché (klasické) další instrukce je zpracovávána až po dokončení první instrukce
Pipeline zřetězené zpracování instrukcí jednotlivé fáze jsou zpracovávány oddělenými jednotkami po ukončení zpracování jednotka předá svůj výsledek jednotce provádějící následující fázi zpracování pokračuje ve své práci nad další instrukcí při skoku – pipeline flush – vyprázdnění fronty předzpracovaných instrukcí 51
www.vsb.cz
Pipelining
52
www.vsb.cz
Děkuji za pozornost
54
www.vsb.cz
Přednáška 3
55
Náplň přednášky 3
56
Kompilace Proměnné Výrazy Operátory Řídicí struktury
www.vsb.cz
Doporučená literatura Učebnice jazyka C – Pavel Herout Programovací jazyk C pro zelenáče – Petr Šaloun
57
www.vsb.cz
Programovací jazyk C C je programovací jazyk, který počátkem 70. let 20. století vyvinuli Ken Thompson a Dennis Ritchie pro potřeby operačního systému Unix.
V roce 1983 se American National Standards Institute (ANSI) dohodla na sestavení komise X3J11, aby vytvořila standardní specifikaci C. Po dlouhém a pracném procesu byl standard dokončen v roce 1989 a schválen jako ANSI X3.159-1989 „Programming Language C“. Tato verze jazyka je často stále označována jako ANSI C. V roce 1990 byl standard ANSI C (s drobnými změnami) adoptován institucí International Organization for Standardization (ISO) jako „ISO 9899|ISO/IEC 9899:1990“.a
58
www.vsb.cz
Kompilační proces Preprocesor – zpracovává direktivy preprocesoru, expanduje .h soubory Kompilátor – generuje ze zdrojového kódu strojové instrukce Assembler – generuje objektový kód Linker – generuje strojový kód
59
www.vsb.cz
Jednoduché datové typy Jazyk C poskytuje tyto datové typy:
60
int short int (short) long int (long) char float double long double
www.vsb.cz
Jednoduché datové typy Typy char, short int, int a long int mohou být buď typu signed nebo unsigned. Typ unsigned int se často zkracuje jen na unsigned Pro typy short int, int a long int je implicitní typ signed Rozdíl mezi signed a unsigned je v rozsahu čísla. Proměnné typu unsigned mají rozsah od 0 do 2n-1. Rozsah signed je od -2n-1 do 2n-1-1. Jazyk C neposkytuje datový typ typu boolean. Typ double má přesnost zhruba 20 desetinných míst
61
www.vsb.cz
Definice proměnných Pod pojmem definice se míní příkaz, který přidělí proměnné určitého typu jméno a paměť. Naopak deklarace je příkaz, který pouze udává typ proměnné a její jméno. Deklarace nepřiděluje žádnou paměť! Příklady definic v jazyce C: int char float
i; c, ch; f, g;
Každá proměnná by měla být definována samostatně a okomentována. 62
www.vsb.cz
Celočíselné konstanty C umožňuje použít tří typů celočíselných konstant Desítkové – posloupnost číslic, z nichž první nesmí být 0. Osmičkové – číslice 0 následovaná posloupností osmičkových číslic (0-7). Šestnáctkové – číslice 0 následovaná znakem x a posloupností hexadecimálních číslic (0-F).
desítková osmičková hexadecimální
63
15, 0, 1 065, 015, 01 0x15, 0x3A
www.vsb.cz
Reálné konstanty Tvoří se podle běžných zvyklostí, mohou začínat a končit desetinou tečkou a jsou implicitně typu double. Příklady: 15., 56.8, .84, 3.15, 5e6, 7E23
64
www.vsb.cz
Znakové konstanty Jsou uzavřeny mezi apostrofy. Hodnota znakových konstant je odvozena z odpovídající kódové tabulky – nejčastěji ASCII. Velikost znakové konstanty je int nikoliv char! Znak „\“ zpětného lomítka se často nazývá escape character. Konstanty uvozené zpětným lomítkem se nazývají escape sekvence.
65
www.vsb.cz
Globální a lokální proměnná Definice proměnných se mohou vyskytovat buď vně (globální proměnná) nebo uvnitř funkce (lokální proměnná), např: int i; /* globalni promenna */ int main () { int j; /* lokalni promenna */ }
66
www.vsb.cz
Výraz, přiřazení a příkaz česky
anglicky
symbolicky
prakticky
výraz
expression
výraz
i*2+3
přiřazení
assigment
l-hodnota=výraz
j=i*2+3
příkaz
statement
l-hodnota=výraz; j = i * 2 + 3;
Výraz má vždy hodnotu (číslo). Přiřazení je výraz a jeho hodnotou je hodnota na pravé straně. Přiřazení se stává příkazem, je-li ukončeno středníkem.
67
www.vsb.cz
Typy příkazů j = 5; d = ‘z’; f = f + 3.13 * i; Protože přiřazení je výraz, je možné několikanásobné přiřazení: k = j = i = 2;
68
www.vsb.cz
Hlavní program Hlavní program v C se jmenuje vždy main a musí být v programu vždy uveden – je to první funkce, která je volána po spuštění programu. Funkce main je normální funkce v C, která se odlišuje od ostatních pouze tím, že je vyvolána na začátku programu jako první.
int main () { int i, j; i = 5; j = j + 2 * i; return 0; } 69
/* bez stredniku */
www.vsb.cz
Složený příkaz Složený příkaz je seznam příkazů:
{ i = 5; j = 6; }
70
www.vsb.cz
Aritmetické výrazy Výraz ukončený středníkem se stává příkazem i = 2 i = 2;
71
www.vsb.cz
Unární operátory Jsou to unární mínus a unární plus. Oba se používají v běžném významu. Speciální unární operátory: inkrement + + dekrement - -
Oba operátory se dají použít jako prefix, tak jako sufix s odlišným významem: ++vyraz – inkrementování před použitím vyraz++ - inkrementování po použití
72
www.vsb.cz
Binární operátory
Sčítaní Odečítání Násobení Dělení Dělení modulo
+ * / %
Typy dělení: 73
int/int int/float float/int float/float
celočíselné reálné reálné reálné www.vsb.cz
Příkaz if a if-else if ( <podminka1> ) <prikaz>;
if ( <podminka2> ) <prikaz1>; else <prikaz2>;
podminka1
nenula
nula
podminka2
nenula
nula
74
proces
proces1
proces2
www.vsb.cz
Iterační příkazy - cykly Jazyk C umožnuje použít tři příkazy pro iteraci: while for do-while
Příkazy break a continue lze použít ve všechny typech cyklů a oba nějakým způsobem mění provádění cyklů. Break – ukončuje nejvnitřnější neuzavřenou smyčku – opouští okamžitě cyklus. Continue – skáče na konec nejvnitřnější neuzavřené smyčky a tím vynutí další iteraci smyčky – cyklus neopouští. 75
www.vsb.cz
Cykly nenula
DO-WHILE
continue
prikaz
podminka
nula
break
WHILE continue
podminka
nenula
prikaz
break nula
FOR continue
vyraz1
podminka
nenula
proces
vyraz2
break nula
76
www.vsb.cz
Syntaxe // Cyklus do-while do { <prikaz>; } while (<podminka>)
// Cyklus while while (<podminka>) { <prikaz>; } // Cyklus for for (
; <podminka>; ) { <prikaz>; } 77
www.vsb.cz
Switch switch () { case : <prikaz1>; break; case : <prikaz2>; break; case : <prikaz3>; break; default : <prikaz4>; break;
78
vyraz
case1
prikaz1
case2
prikaz2
case3
prikaz3
default
prikaz4
www.vsb.cz
Příkaz goto Příkaz goto se v dobře napsaných programech používá málokdy, protože ve strukturovaném jazyku, se mu lze vždy vyhnout. Jedno z mála seriózních použití je výskok z vnořených cyklů.
79
www.vsb.cz
Příkaz return Narazí-li provádění programu na příkaz return, ukončí se provádění funkce, která tento příkaz obsahuje. Ve funkci main() ukončí příkaz return celý program. Často se pomocí return vrací hodnota, jejíž typ záleží na typu funkce.
80
www.vsb.cz
Děkuji za pozornost
81
www.vsb.cz
Přednáška 4
82
Náplň přednášky 4
83
Typová konverze Preprocesor Funkce Pointery Pole, struktury, uniony
www.vsb.cz
Typová konverze Pod pojmem typová konverze se míní převod proměnné určitého typu na typ jiný. Jazyk C rozeznává dva druhy typové konverze Implicitní – samovolná či automatická Explicitní – vyžadovaná či požadovaná
84
www.vsb.cz
Implicitní typová konverze Implicitní typová konverze má tyto základní pravidla: Před vykonáním operace se samostatné operandy základních datových typů konvertují takto: Kdykoliv se objeví typ char nebo short int, konvertuje se na typ int. Totéž platí pro typ float, který se konvertuje na typ double. Všechny operandy unsigned char a unsigned short se konvertují na int pouze tehdy, když typ int může reprezentovat jejich hodnotu. Jinak se konvertují na unsigned int.
85
www.vsb.cz
Implicitní datová konverze Mají-li dva operandy jedné operace různý typ, pak je typ operandu s nižší prioritou konvertován na typ s prioritou vyšší, podle následující hierarchie (kde int má nejnižší hodnotu).
int => unsigned int unsigned int = > long long = > unsigned long unsigned long = > double double => long double V přiřazovacích výrazech je typ na pravé straně konvertován na typ z levé strany. 86
www.vsb.cz
Explicitní datová konverze Na rozdíl od implicitní konverze, kterou nejsme schopni v podstatě ovlivnit, můžeme explicitní konverzi využívat téměř dle libosti. Explicitní konverze se též nazývá přetypování (casting nebo typecasting) a má formu: (typ) výraz
která znamená, že výraz (nebo proměnná) je v čase překladu konvertován na požadovaný typ. 87
www.vsb.cz
Preprocesor jazyka C Činnost preprocesoru se dá shrnout do několika základních bodů: Zpracovává text programu před použitím překladače. Nekontroluje syntaktickou správnost programu. Provádí pouze záměnu textů, např. identifikátorů konstant za odpovídající číselné hodnoty. Vypustí ze zdrojového textu všechny komentáře. Připravuje podmíněný překlad.
Řádka, která je určena pro zpracování preprocesorem musí začínat znakem „#“. Znak „#“ by měl být jako první znak na řádce a za nám by neměla být mezera. 88
www.vsb.cz
Konstrukce preprocesoru
Definování makra #define jmeno_makra libovolny text rozvoje
Zrušení definice makra #undef jmeno_makra
Podmíněný překlad v textu v závislosti na hodnotě #if konst_vyraz #elif #else #endif
Vložení textu ze specifikovaného souboru v adresáři uživatele #include “filename”
Vložení textu ze specifikovaného souboru ze systémového adresáře #include
Podmíněný překlad textu v závislosti na tom, zda je makro definováno nebo nedefinováno #ifdef jmeno_makra #elif #else #endif
Podmíněný překlad textu v závislosti na tom, zda je makro nedefinováno nebo definováno #ifndef jmeno_makra #elif #else #endif
Výpis chybových zpráv během procesingu #error Chybova zprava
89
www.vsb.cz
Makra bez parametrů Makra bez parametrů, známější pod názvem symbolické konstanty, se využívají velmi často, protože zbavují program magických čísel. Většinou jsou konstanty definovány na začátku programu (modulu). Jejich rozumné použití také významně zvyšuje modularitu programu. Náhrada konstanty skutečnou hodnotou se nazývá rozvoje (expanzí) nebo též substitucí makra.
90
www.vsb.cz
Pravidla symbolických konstant Pro psaní symbolických konstant platí následující pravidla: Jména konstant jsou z konvence psána vždy VELKÝMI PÍSMENY. Jméno konstanty je od její hodnoty odděleno alespoň jednou mezerou. Za hodnotou může a měl by být komentář. Nové konstanty mohou využívat již dříve definovaných konstant. Pokud je hodnota konstanty delší než řádka, musí být na konci řádky znak „\“, který se do makra nerozvine.
91
www.vsb.cz
Makra s parametry Při řešení programů se často vyskytne případ, kdy mnohokrát používáme nějakou funkci, která je velmi krátká. Takovou funkci lze samozřejmě bez problému napsat, ale pak nastává problém s efektivitou programu. Je-li funkce velmi krátká, je někdy její režie (předání parametrů, úschova návratové adresy, skok do funkce, návrat z funkce do místa volání a výběr použitých parametrů) delší než samostatný kód funkce. Makra s parametry toto řeší za cenu delšího programu. 92
www.vsb.cz
Makra s parametry Makra s parametry se též někdy nazývají vkládané funkce (in-line functions), protože, na rozdíl od skutečných funkcí, se makra s parametry nevolají, ale před překladem nahradí preprocesor jméno makra konkrétním textem. Praktické využití je jen pro velmi krátké akce, kdy by administrativa funkce trvala srovnatelnou dobu s vlastním výpočtem funkce. Syntaxe je následující: #define jmeno_makra(arg1, … , argN) hodnota_makra
Syntaxe volání je následující: jmeno_makra (par1, … , parN) 93
www.vsb.cz
Vkládání souborů – příkaz include Vkládání souborů se používá v jazyce C velmi často – v podstatě vždy. Příkaz include způsobí, že obsah zdrojového souboru bude „nakopírován“ do „volajícího“ souboru do místa, kde se nachází příkaz include.
94
www.vsb.cz
Vkládané soubory Soubory, které se dají vkládat pomocí příkazu include, mohou být libovolné textové soubory. Vkládání hlavičkových souborů je velmi užitečný mechanismus, jak program sestávající se z více souborů udržet čitelný. Například všechny definice konstant využívané více soubory s uvedou pouze jednou do souboru typu h, který se pomocí #include připojí do všech souborů.
95
www.vsb.cz
Standardní hlavičkové soubory Každá implementace překladače C má několik standardních .h souborů a v každém z těchto souborů je popsána část funkcí a konstant ze standardní knihovny. Soubor stdio.h obsahuje kromě definic základních vstupních a výstupních funkcí také definice rozličných konstant a typů. V .h souborech nejsou uvedeny celé zdrojové texty příslušných funkcí, ale pouze jejich hlavičky (funkční prototypy).
96
www.vsb.cz
Oddělený překlad souborů Vkládání souborů by nemělo být zaměňováno s odděleným překladem souborů. Je-li program dělen do více souborů, které se pomocí #include vloží do jednoho souboru, vznikne po překladu pouze jeden .OBJ soubor. Oddělený překlad znamená, že se každý soubor přeloží zvlášť – vznikne tedy několik .OBJ souborů, a ty se spojí do jednoho souboru až pomocí linkeru.
97
www.vsb.cz
Funkce a práce s pamětí Jazyk C je založených na funkcích. Pro triviální programy stačí pouze jedna funkce main(), ale takových programů je velmi málo. Většina programů využívá větší či menší počet funkcí.
98
www.vsb.cz
Přehled základních pojmů Deklarace identifikátoru – specifikace jména identifikátoru a jeho typu. Žádná alokace paměti pro příslušný typ se neprovádí. Definice identifikátoru – kompletní specifikace identifikátoru včetně typu. V tomto místě překladač generuje požadavek na alokaci paměti pro příslušný typ. Pole působnosti identifikátoru – část programu, ve které je identifikátor definován nebo deklarován. Existence identifikátoru – časový interval, během kterého pracuje v poli působnosti identifikátoru. 99
www.vsb.cz
Přehled základních pojmů Statická globální proměnná – má stejný význam jako globální proměnná, pouze má uvedeno klíčové slovo static, které omezuje její viditelnost je na část programu. Statická lokální proměnná – proměnná, jejíž existence začíná při vstupu do funkce, v niž je definována, a končí s ukončením programu, přičemž je dostupná pouze z funkce, kde je definována. Překladač ji uloží do datové oblasti paměti. Lokální proměnná – překladač ji uloží do zásobníku.
100
www.vsb.cz
Alokace paměti Každá proměnná musí mít během své existence přidělen paměťový prostor, který odpovídá velikosti a typu proměnné. Jméno proměnné je vlastně symbolická adresa tohoto paměťového prostoru. Akce, která vyhrazuje paměťový prostor se nazývá alokace, přičemž rozeznáváme dva typy alokací: Statická a dynamická.
101
www.vsb.cz
Funkce Program v C obsahuje jednu nebo více definic funkcí, z nichž jedna se musí vždy jmenovat main(). Abychom odlišili jméno proměnné od jména funkce, budeme důsledně uvádět za jménem funkce závorky. Zpracování programu začíná voláním funkce main() a končí opuštěním této funkce. Všechny funkce v C jsou skutečné funkce, čili vrací hodnotu. Dají se však použít i jako procedury.
102
www.vsb.cz
Definice funkce Definice funkce určuje jak hlavičku funkce, tak i její tělo, zatímco deklarace funkce specifikuje pouze hlavičku funkce, tj. jméno funkce, typ návratové hodnoty a případně i typ a počet jejích parametrů. Hlavička funkce není ukončena středníkem. Tělo funkce je uzavřeno do složených závorek naprosto stejně jako u funkce main(). Funkce, která nemá žádné parametry, musí být definována i volána včetně obou kulatých závorek.
103
www.vsb.cz
Procedury a datový typ void Formálně sice v jazyce C procedury neexistují, ale jsou dvě cesty jak to obejít. Funkce návratovou hodnotu sice vrací, ale nikdo jí nechce. Typický příklad je čekání na stisk klávesy pomocí funkce getchar(). Funkce se definuje jako funkce vracející typ void. Příkaz return poté není nutný a používá se pouze pro nucené ukočení funkce před dosažením jejího konce.
104
www.vsb.cz
Parametry funkcí Jazyk C umožňuje pouze jeden způsob předávání parametrů a to hodnou. To má výhodu, že skutečným parametrem může být i výraz, ale nevýhodu, že skutečné parametry nemohou být ve funkce změněny, ale pouze čteny. Jakákoliv změna parametrů uvnitř funkce je pouze dočasná, a po opuštění funkce se ztrácí. Jazyk C umožňuje využít pointery, pomocí nichž se řeší volání odkazem. Trvalá změna skutečných parametrů uvnitř funkce je možná, ale není přímočará. 105
www.vsb.cz
Globální a lokání proměnné Globální deklarace jsou deklarace proměnných, které jsou definovány v jiných souborech. Protože jsou tyto deklarace často specifikovány použitím klíčového slova extern, nazývají se též často externí deklarace. Globální definice definují proměnné, jejichž rozsah platnosti je od místa definice do konce souboru. Lokální definice definují proměnné, jejichž rozsah platnosti je od místa definice do konce funkce, ve které jsou definovány. 106
www.vsb.cz
Inicializace proměnných Lokální proměnné nejsou automaticky inicializovány – jejich hodnota je vždy náhodná. Globální proměnné jsou implicitně inicializovány na nulu. Je však dobrým zvykem na toto nespoléhat a u všech proměnných, které mají být inicializovány, tuto inicializaci výslovně uvést.
107
www.vsb.cz
Paměťové třídy Kromě rozličných typů, mohou být proměnné uvedeny i v různých paměťových třídách. Paměťové třídy určují, ve které části paměti bude proměnná kompilátorem umístěna, a také, kde všude bude viditelná. Jazyk C rozeznává tyto paměťové třídy:
108
auto extern static register
www.vsb.cz
Třída auto O těchto proměnných se často hovoří jako o automatických. Je to implicitní paměťová třída pro lakální proměnné. Je-li proměnná definovaná uvnitř funkce bez určení typu paměťové tříd, je její implicitní typ právě auto a proměnná je uložena v zásobníku. Proměnná typu auto existuje od vstupu do funkce a zaniká při výstupu. Při každém vstupu do funkce má náhodnou hodnotu.
109
www.vsb.cz
Třída extern Je to implicitní paměťová třída pro globální proměnné. Tyto proměnné jsou uloženy v datové oblasti. Klíčové slovo extern se používá při odděleném překladu souborů, kdy je třeba, aby dva a více souborů sdílelo tutéž proměnnou. Tato globální proměnná je v jednom souboru definována bez klíčového slova extern a ve všech ostatních musí být deklarována s použitím extern.
110
www.vsb.cz
Třída static Pro tuto třídu neexistuje žádná implicitní definice, čili klíčové slovo static musí být při definici vždy uvedeno. Proměnné této třídy jsou uloženy v datové oblasti. Má dvě oblasti použití: Pro globální proměnné nebo funkce, což má ten význam, že jsou viditelné pouze v modulu, ve kterém jsou definovány. Pro lokální proměnné, kdy paměťovou třídu static využívají lokální proměnné, které si ponechávají svoji hodnotu i mezi jednotlivými voláními této funkce.
111
www.vsb.cz
Třída register Programátor může požadovat, aby některá proměnná nebyla uložena v operační paměti, ale pouze v registru procesoru. To má výhodu mnohem rychlejšího přístupu k proměnné.
112
www.vsb.cz
Typové modifikátory Libovolná proměnná určitého datového typu může být ještě modifikována typovým modifikátorem. typové modifikátory rozeznává jazyk C dva: const volatile
113
www.vsb.cz
Modifikátor const Jeho použití specifikuje, že definovanému objektu nesmí být po jeho inicializaci již měněna hodnota. Nejčastěji je const využíván při definici formálních parametrů funkce.
114
www.vsb.cz
Modifikátor volatile Modifikátor volatile upozorňuje kompilátor, že takto definovaná proměnná může být modifikována nějakou blíže nespecifikovanou asynchronní událostí. Kompilátor tedy nemůže činit žádné závěry o možnosti změny nebo konstantnosti této proměnné např. pro účely optimalizace.
115
www.vsb.cz
Pointery Pointer je proměnná jako každá jiná, pouze hodnota v této proměnné uložená má odlišný význam od hodnot proměnných, na které jsme byli dosud zvyklí. Pointer představuje adresu v paměti a na této adrese se teprve ukrývá příslušná hodnota. Pointer je vždy svázán s datovým typem. Správně by se mělo místo termínu „pointer“ vždy uvádět „pointer na typ …“
116
www.vsb.cz
Dereferenční operátor Pomocí operátoru * můžeme jednat získat obsah na na adrese, na níž ukazuje pointer. Je možná i opačná akce, tedy zapsání hodnoty na tuto adresu.
117
www.vsb.cz
Referenční operátor K práci s pointery musíme znát způsob získání adresy již definované proměnné. Adresa libovolné proměnné se dá získat pomocí referenčního operátoru &. int i, *p_i = &i; p_i = &i;
118
www.vsb.cz
Jednorozměrná pole Pole je datová struktura složená ze stejných prvků. Pole v jazyce C nemají dolní volitelnou mez, tedy dolní mez pole je vždy 0. Jazyk C zásadně nekontroluje meze polí!
119
www.vsb.cz
Vícerozměrná pole Jazyk C umožňuje, aby pole mělo více dimenzí než jen jednu. Nejčastěji se používají dvoudimenzionální pole (tabulky), ale i troj a vícerozměrná pole jsou také možná. Pro vícerozměrná pole platí, že všechny indexy začínají od nuly.
120
www.vsb.cz
Struktury Zatímco pole je homogenní datový typ, je struktura datový typ heterogenní. Heterogenní znamená, že datový typ je složen z datových prvků různých typů, což je ale jeho vnitřní záležitost, protože navenek vystupuje jako jednolitý objekt.
121
www.vsb.cz
Výčtový typ Výčtový typ má sice podobnou konstrukci jako struktura, ale zcela jinou filosofii práce. Pomocí něho lze snadno definovat seznam symbolických konstant Výčtový typ lze opět definovat různými způsoby, z nichž preferujeme vždy definici pomocí typedef: typedef enum { MODRA, CERVENA, ZELENA, ZLUTA } BARVY; BARVY c, d; c = MODRA; d = CERVENA;
122
www.vsb.cz
Uniony Datový typ union znamená, že se vyhradí paměť pro největší položku ze všech položek v unionu definovaných. Všechny položky unionu se překrývají, což znamená, že v unionu může být v jednom okamžiku pouze jedna položka. Uniony se v praxi používají málokdy a použijí-li se, měl by pro to být skutečný důvod. Jedním z důvodů může být potřeba šetřit paměť a union se tedy používá hlavně ve velkých polích. 123
www.vsb.cz
Operace s jednotlivý bity Pro účely manipulace s bity C poskytuje 6 operátorů: & - bitový součin | - bitový součet ^ - bitový exklusivní součet << - posun doleva >> - posun doprava ~ - jedničkový doplněk
124
www.vsb.cz
Děkuji za pozornost
125
www.vsb.cz
Přednáška 5
126
Náplň přednášky 5 Konstrukce mikrokontroléru. Vnitřní struktura procesoru, mapa paměti, zásobník, adresní mody, konfigurační registry, generátor systémových hodin, jednotky rozhraní, ochranné obvody procesoru. Mikroprocesorová rozhraní a jejich programování pro řízení – číslicové vstupy a výstupy.
127
www.vsb.cz
Datasheet Všechny důležité informace lze nalézt v datasheetu Každý mikrokontrolér má unikátní konstrukci Mezi jednotlivými řadami existují společné prvky
128
www.vsb.cz
Mapa paměti
129
www.vsb.cz
Zásobník Zásobník je v informatice obecná datová struktura (tzv. abstraktní datový typ) používaná pro dočasné ukládání dat. Také se používá anglický výraz stack. Pro zásobník je charakteristický způsob manipulace s daty - data uložena jako poslední budou čtena jako první. Proto se používá také výraz LIFO z anglického „Last In – First Out“. Pro manipulaci s uloženými datovými položkami se udržuje tzv. ukazatel zásobníku, který udává relativní adresu poslední přidané položky, tzv. vrchol zásobníku.
130
www.vsb.cz
Princip zásobníku
131
www.vsb.cz
Generátor hodin je řízen krystalovým oscilátorem umístěným na základní desce generuje hodinové impulzy pro CPU generuje signál RESET
132
www.vsb.cz
Registry procesoru
133
www.vsb.cz
Watchdog timer Watchdog nebo Watchdog timer, zkráceně WDT (z angličtiny – „hlídací pes“) je počítačová periferie, která resetuje systém při jeho zaseknutí (deadlocku). K zaseknutí systému může dojít v důsledku chyby v hardware nebo software systému. Program (většinou v hlavní smyčce) periodicky signalizuje watchdogu svůj chod. To se může dít např. zápisem servisního impulsu do watchdogu, v případě některých jednočipových mikropočítačů také provedením speciální strojové instrukce. Pokud systém určitý čas nesignalizuje chod (typicky milisekundy až sekundy), pak watchdog způsobí reset systému. 134
www.vsb.cz
Elektrické vlastnosti
135
www.vsb.cz
Bitový a bajtový přístup V CodeWarrior lze přistupovat k registrům buď bitově nebo bajtově.
Příklady: PTAD = 0b00001111; PTAD_PTAD1 = 0;
136
www.vsb.cz
Napěťové úrovně digitálního portu
137
www.vsb.cz
TTL
0 Výstupy
0,4
2,4
L
138
1
2
L -0,5
[V]
5
[V]
H
0 Vstupy
5
3
4 H
0,8
2
5,5 [V]
www.vsb.cz
Level shiffter
Zařízení 1
PORT A bit 0
5V
5V
Data MCU Zařízení 2 3.3 V
Level shifter
PORT A bit 1
5V
Data
139
www.vsb.cz
Zesilovač
UCC
UCC IC
UD
D
R
UD
D
UR
R
MCU IB
MCU
PORT A bit 0
PORT A bit 0
UCE RB
140
U
RD
U
www.vsb.cz
Pull-up, Pull-down Pull up rezistor. Na každém logickém vstupu musí být definovaná log. úroveň. V případě nezapojeného vstupu nebo vstupu, ke kterému je připojena vysoká impedance, může dojít k neočekávaným stavům. Pull up rezistor slouží k udržení logické hodnoty „1“
141
www.vsb.cz
Ošetření zákmitů
UCC
RP RF
PORT A bit 0 MCU
D
CF U
142
www.vsb.cz
Děkuji za pozornost
143
www.vsb.cz
Přednáška 6
144
Náplň přednášky 5 Přerušovací systém – zdroje, způsob zpracování, čítače, časovače, pulsně šířková modulace.
145
www.vsb.cz
Přerušení Přerušení (anglicky interrupt) je v informatice metoda pro asynchronní obsluhu událostí, kdy procesor přeruší vykonávání sledu instrukcí, vykoná obsluhu přerušení a pak pokračuje v předchozí činnosti. Původně přerušení sloužilo k obsluze hardwarových zařízení, které tak signalizovaly potřebu obsloužit (tj. odebrat z vyrovnávací paměti data nebo naopak do ní další data nakopírovat, odtud označení vnější přerušení). Později byla přidána vnitřní přerušení, která vyvolává sám procesor, který tak oznamuje chyby vzniklé při provádění strojových instrukcí a synchronní softwarová přerušení vyvolávaná speciální strojovou instrukcí, která se obvykle používají pro vyvolání služeb operačního systému. 146
www.vsb.cz
Obsluha přerušení Přijde-li do procesoru signalizace přerušení, je v případě, že obsluha přerušení je povolena, nejprve dokončena právě rozpracovaná strojová instrukce. Pak je na zásobník uložena adresa následující strojové instrukce, která by měla být zpracována, kdyby k přerušení nedošlo. Pak je podle tabulky přerušení vyvolána obsluha přerušení, která obslouží událost, kterou přerušení vyvolalo. Obsluha přerušení je zodpovědná za to, aby na jeho konci byl uveden stav procesoru do stavu jako na jejím začátku, aby výpočet přerušené úlohy nebyl ovlivněn, což se z důvodu vyšší rychlosti obvykle dělá softwarově (některé procesory umožňují uložit svůj stav pomocí speciální strojové instrukce). Na konci obsluhy přerušení je umístěna instrukce návratu (RET, někdy speciální IRET), která vyzvedne ze zásobníku návratovou adresu a tak způsobí, že z této adresy bude vyzvednuta následující strojová instrukce. Přerušená úloha tak až na zpoždění nepozná, že proběhla obsluha přerušení.
147
www.vsb.cz
Vnitřní přerušení Vnitřní přerušení vyvolává sám procesor, který tak signalizuje problémy při zpracování strojových instrukcí a umožňuje operačnímu systému na tyto události nejvhodnějším způsobem zareagovat. Jedná se například o pokus dělení nulou, porušení ochrany paměti, nepřítomnost matematického koprocesoru, výpadek stránky a podobně.
148
www.vsb.cz
Vnější přerušení Vnější přerušení (též hardwarové přerušení) je označováno podle toho, že přichází ze vstupně-výstupních zařízení (tj. z pohledu procesoru přicházejí z vnějšku). Vstupně-výstupní zařízení tak má možnost si asynchronně vyžádat pozornost procesoru a zajistit tak svoji obsluhu ve chvíli, kdy to právě potřebuje bez ohledu na právě zpracovávanou úlohu. Vnější přerušení jsou do procesoru doručována prostřednictvím řadiče přerušení, což je specializovaný obvod, který umožňuje stanovit prioritu jednotlivým přerušením, rozdělovat je mezi různé procesory a další související akce. 149
www.vsb.cz
Softwarové přerušení Softwarové přerušení je speciální strojová instrukce. Tento typ přerušení je na rozdíl od druhých dvou typů synchronní, je tedy vyvoláno zcela záměrně umístěním příslušné strojové instrukce přímo do prováděného programu. Jedná se o podobný způsob, jako vyvolání klasickému podprogramu, avšak procesor se může zachovat jinak. Instrukce softwarového přerušení se proto využívá pro vyvolání služeb operačního systému z běžícího procesu (tzv. systémové volání).
150
www.vsb.cz
Vektor přerušení Vektor přerušení je adresa paměti handleru přerušení nebo index pole tabulky vektorů přerušení, která obsahuje paměťové adresy přerušení.
151
www.vsb.cz
Obsluha přerušení Obsluha přerušení Uložení registrů CPU do zásobníku (CCR, SP, PC, A, Index) Nastavení bitu I v CCR pro zamaskování dalších přerušení Vyvolat vektor přerušení s nejvyšší prioritou Naplnit frontu instrukcí prvními třemi byte dle informace z vektoru přerušení
Provedení přerušení Instrukce obslužné rutiny
Konec přerušení instrukce return-from-interrupt (RTI) obnovení obsahu 152
www.vsb.cz
Čítač/časovač Je základní periferií mikrokontrolérů. Umožňuje základní módy Input capture Output compare PWM
153
www.vsb.cz
Input capture Je vstupním režimem časovače. Umožňuje měření délky impulsu dle příslušného nastavení
154
www.vsb.cz
Output compare Je výstupní režimem časovače.
155
www.vsb.cz
Časovače
156
www.vsb.cz
Pulsně šířková modulace Pulsně šířková modulace, neboli PWM (Pulse Width Modulation) je diskrétní modulace pro přenos analogového signálu pomocí dvouhodnotového signálu. Jako dvouhodnotová veličina může být použito například napětí, proud, nebo světelný tok. Signál je přenášen pomocí střídy. Pro demodulaci takového signálu pak stačí dolnofrekvenční propust. Vzhledem ke svým vlastnostem je pulsně šířková modulace často využívána ve výkonové elektronice pro řízení velikosti napětí nebo proudu. Kombinace PWM modulátoru a dolnofrekvenční propusti bývá rovněž využívána jako levná náhrada D/A převodníku. 157
www.vsb.cz
Perioda a střída Perioda je doba opakování U periodických signálů, které během jedné periody přecházejí z jedné úrovně do druhé a naopak, znamená střída poměr časů, ve kterých je signál v jednotlivých úrovních
158
www.vsb.cz
Edge aligned vs. Centred aligned
159
www.vsb.cz
Děkuji za pozornost
160
www.vsb.cz
Přednáška 7
161
Náplň přednášky 7 Mikroprocesorová rozhraní a jejich programování pro řízení - Analogové vstupy a výstupy.
162
www.vsb.cz
Analogový signál Analogový signál je dán spojitou (nebo po částech spojitou) funkcí spojitého času. Tím se liší od signálu diskrétního, který je dán funkcí definovanou pouze v diskrétních časových okamžicích (a tvoří tak posloupnosti funkčních hodnot). Analogové signály můžeme rozdělovat podle média, kterým jsou přenášeny. Mluvíme tak například o akustických signálech, elektrických signálech, optických signálech apod.
163
www.vsb.cz
Digitalizace Digitalizace signálu (z angl. digital, číslicový) obecně je převod analogového (spojitého) signálu (např. hlasový projev) do nespojité posloupnosti digitálních (číselných) údajů, obvykle kódovaných v binární soustavě. Digitalizací sice vždy dochází ke ztrátě informace, ta však může být téměř libovolně malá. Záleží jen na hustotě vzorkování a na zvoleném počtu bitů pro zobrazení jednotlivých vzorků. Digitalizovaný signál je naproti tomu velmi odolný proti šumu a dalším nežádoucím změnám a dá se dobře přenášet, uchovávat a neomezeně reprodukovat bez ztráty informace. Ve stejném digitálním formátu lze také zobrazovat informace znakové (text), zvuk i obraz a různě je kombinovat. Problémem zůstává trvanlivost datových nosičů a rychlé změny datových formátů.
164
www.vsb.cz
Shannonův teorém Shannonův teorém (Nyquistův teorém, Kotělnikovův teorém, Nyquistův-Shannonův teorém, ShannonůvNyquistův-Kotělnikovův teorém, apod.) „Přesná rekonstrukce spojitého, frekvenčně omezeného, signálu z jeho vzorků je možná tehdy, pokud byl vzorkován frekvencí alespoň dvakrát vyšší, než je maximální frekvence rekonstruovaného signálu.“
165
www.vsb.cz
Praktické použití V praxi se tedy vzorkovací frekvence volí dvakrát větší plus ještě malá rezerva než je maximální požadovaná přenášená frekvence. V telekomunikacích je to např. 8 kHz neboť je třeba přenášet pouze signály ve standardním telefonním pásmu (od 0,3 do 3,4 kHz zaokrouhleno směrem nahoru 4 kHz). Například u záznamu na CD je to 44,1 kHz neboť průměrné zdravé lidské ucho slyší maximálně cca do 20 kHz a tudíž vzorkovací frekvence 44,1 kHz byla zvolena s určitou rezervou. 166
www.vsb.cz
Aliasing Aliasing je jev, ke kterému může docházet v situacích, kdy se spojitá informace převádí na diskrétní (nespojitou). Takový převod se nazývá vzorkování, a aby nedocházelo k aliasingu, musí být vzorkovací frekvence větší než dvojnásobek nejvyšší frekvence harmonických složek obsažených ve vzorkovaném signálu . Pokud tuto podmínku nesplňuje, dochází k překrytí frekvenčních spekter vzorkovaného signálu a tedy ke ztrátě informace. Slovo aliasing znamenající v češtině falšování přesně vystihuje jev, ke kterému dojde při nedodržení podmínky Shannonova teorému. Původní frekvence spojité informace je totiž vzorkováním zcela zfalšována. Známou ukázkou aliasingu je například filmový záznam nějakého rychle se otáčejícího předmětu (například vrtule letadla). 167
www.vsb.cz
Vzorkování 10 vs 50 minut
168
www.vsb.cz
Výsledek po vzorkování
169
www.vsb.cz
Vzorkování Vzorkování signálu je proces jeho diskretizace v časové oblasti. Vzorkování se provede tím způsobem, že rozdělíme vodorovnou osu signálu (v našem příkladu je na této ose čas) na rovnoměrné úseky a z každého úseku odebereme jeden vzorek (na obrázku jsou tyto vzorky znázorněny červenými kolečky). Je přitom zřejmé, že tak z původního signálu ztratíme mnoho detailů, protože namísto spojité čáry, kterou lze donekonečna zvětšovat dostáváme pouze množinu diskrétních bodů s intervalem odpovídajícím použité vzorkovací frekvenci. 170
www.vsb.cz
Kvantování Kvantování je diskretizace oboru hodnot signálu. Vždy je to proces ztrátový a nevratný. Pokud kvantování není dostatečně jemné, vznikají falešné kvantizační hrany (false contour effect). Kvantizační šum je typický i pro veškeré digitální záznamy a přenosy zvuku.
171
www.vsb.cz
Kvantizační šum Pokud bychom vynesli velikosti chyb od jednotlivých vzorků do grafu, získali bychom náhodný signál, kterému se říká kvantizační šum. Velikost šumu je zvykem vyjadřovat jako poměrné číslo v decibelech, a sice jako poměr užitečného signálu ku šumu. Protože číslo ve jmenovateli zlomku - kvantizační chyba je u všech lineárních převodníků stejná (interval +1/2 až -1/2 kvantizační úrovně), závisí velikost kvantizačního šumu jen na čitateli zlomku, tedy na velikosti užitečného signálu, což je maximální počet kvantizačních úrovní daného převodníku. 172
www.vsb.cz
Druhy A/D převodníků
173
Komparační Aproximační Integrační Sigma Delta
www.vsb.cz
Komparační A/D převodník Paralelní A/D převodník je nejrychlejším typem A/D převodníku, protože převod probíhá v jednom časovém okamžiku. Kvantování vstupního signálu se vyjadřuje v komparátorech, které porovnávají vstupní napětí s odstupňovaným referenčním napětím (vytváří se v odporové síti). Převodník s rozlišitelností n-bitů obsahuje 2n-1 komparátorů. Vzorkování vstupního signálu se uskutečňuje zápisem stavu výstupů komparátorů do klopných obvodů (příchodem hodinového impulsu). Dekodér je kombinační obvod, který převádí informaci o výstupech komparátorů na určitý kód.
174
www.vsb.cz
Komparační A/D převodník
175
www.vsb.cz
Aproximační A/D převodník Při použití postupné aproximace se zkusmo nastaví jednotlivé váhové bity. Začíná se bitem MSB a končí bitem LSB. Na začátku cyklu převodu se nastaví hodnota převodu výstupu aproximačního registru na 10000000, čemuž odpovídá výstup zpětnovazebního D/A převodníku UREF/2. Toto napětí se porovnává v komparátoru s vstupním napětím. Je-li UVST vetší než UREF/2, ponechá se MSB nastaven na 1, v opačném případě se vrátí na 0. V druhém kroku se zkusmo nastaví na 1 další váhový bit. Na výstupu tedy bude 11000000 nebo 01000000, podle výsledku předchozího kroku. Opět se porovná zpětnovazební a vstupní napětí a aktuální bit se nastaví na 1 nebo se vrátí na 0, takto se postupuje až k LSB. U tohoto převodníku je doba převodu nižší než u čítacího převodníku a je nezávislá na vstupním napětí. Změna vstupního napětí během převodu způsobí chybu, a proto na rozdíl od čítacího převodníku musí být vstup opatřen vzorkovacím obvodem. 176
www.vsb.cz
Aproximační A/D převodník
177
www.vsb.cz
Integrační převodník Základem těchto převodníků je integrátor, tzn. výstupem převodníku je číslo odpovídající průměrné hodnotě vstupního napětí za určitou dobu. Vliv průměrování vyžaduje zapojit na vstup vzorkovací obvod. Použití integrátoru také potlačuje šumová napětí vyšších kmitočtů. Podle funkce rozlišujeme integrační A/D převodníky s mezipřevodem na kmitočet a s mezipřevodem na časový interval. 178
www.vsb.cz
Integrační převodník
179
www.vsb.cz
Sigma-Delta převodník Převodník se skládá ze sigma-delta modulátoru a číslicového filtru. Základními obvody modulátoru jsou dolní propust (integrátor), napěťový komparátor a klopný obvod typu D, překlápěný hodinovým signálem s kmitočtem f0. Dále je zde zpětnovazební větev s jednobitovým D/A převodníkem, což je vlastně přepínač dvouhodnotového signálu UREF. Tento signál se odečítá od vstupního napětí v rozdílovém zesilovači. U převodníku vzniká kvantizační šum, který je rovnoměrně rozložen v pásmu spektra kmitočtů od 0 do f0/2, jestliže u číslicového filtru vzorkujeme kmitočtem f0/K, kde K se nazývá koeficient nevzorkování (bývá 10 - 104), sníží se efektivní výkon kvantizačního šumu a dojde ke zvýšení efektivního počtu převodníku. Sigma-delta převodníky se hodí pro měření stejnosměrných nebo pomalu se měnících napětí.
180
www.vsb.cz
Sigma-Delta převodník
181
www.vsb.cz
A/D převodníky v mikrokontrolérech Nejčastěji aproximační AD převodníky Běžně 8-10bitů Doba převodu x10us až x1us Reference L a H Vstupy dle napájení uC – 3.3V nebo 5V. Některé 3.3V mají 5V tolerant AD převodník závisí na referenčních úrovních Většina obsahuje multiplexer pro 8 vstupů, které jsou sdílena s IO bránou a S-H obvod Integrovány 1-2 AD převodníky U některých čipů mohou sousední vstupy pracovat v diferenčním režimu.
182
www.vsb.cz
D/A převodníky Digitálně-analogové převodníky s váhovými rezistory Digitálně-analogové převodníky se žebříčkovou sítí rezistorů R-2R
183
www.vsb.cz
Analogové výstupy Klasický DA převodník výjimečně (Freescale HCS08 nebo 12 pouze jedna rodina - MC9S12E) Využívá se především PWM signál – Využíváme střední hodnoty PWM signálu
184
www.vsb.cz
Děkuji za pozornost
185
www.vsb.cz
Přednáška 8
186
Náplň přednášky 8 Komunikace v řídicích systémech. Paralelní a sériové rozhraní. Průmyslové komunikační sítě. RS232, SPI, I2C, USB, CAN, LIN, Ethernet.
187
www.vsb.cz
Komunikační rozhraní Dělíme na: Sériové Paralelní
Dělíme na: Drátové Bezdrátové
188
www.vsb.cz
Duplexní spojení Duplexní spojení (duplex, obecně duplexní systém) je taková komunikace (popř. přenos dat) mezi dvěma subjekty, při které mohou data putovat oběma směry současně. Lze rozlišit dva druhy duplexního spojení: poloviční duplex plný duplex.
189
www.vsb.cz
USART (UART) Synchronní / asynchronní sériové rozhraní USART (Universal Synchronous / Asynchronous Receiver and Transmitter). Jde o zařízení pro sériovou komunikaci, které lze nastavit buď pro asynchronní režim (SCI - např. pro linky RS232 resp. RS485), anebo pro synchronní režim (běžně označovaný jako SPI).
190
www.vsb.cz
Vyslání bajtu Jakmile jsou data zapsána do registru TXREG, všechny bity jsou přepsány do registru pro vysílání (Transmit Shift Register). A odtud jsou dále přeposlány na TX pin, přičemž je jim přiřazen na začátek start a na konec stop bit. Použití speciálního registru pro vysílání umožňuje načítání nových dat do registru TXREG už během vysílání dat předchozích. To maximálně zefektivňuje komunikaci.
191
www.vsb.cz
Příjem bajtu Po detekci start bitu na pinu RX, se další data bit po bitu přesunou do registru pro příjem (receive shift register). Po přesunutí posledního bitu se zkontroluje stop bit a data se pošlou do bufferu, který je předá registru RCREG, pokud je prázdný. Tento buffer a registr RCREG jsou dva elementy FIFO. Separátní použití registru pro příjem a FIFO bufferu poskytuje softwaru k přečtení doručených dat bez rizika přepsání těchto dat dalšími doručenými. Je tedy možné obdržet první dva byty a dále přijímat třetí byte ještě předtím, než jsou data „vytažena“ z registru RCREG.
192
www.vsb.cz
RS-232 Standard RS-232, resp. jeho poslední varianta RS232C z roku 1969, (také sériový port nebo sériová linka) se používá jako komunikační rozhraní osobních počítačů a další elektroniky. RS-232 umožňuje propojení a vzájemnou sériovou komunikaci dvou zařízení, tzn. že jednotlivé bity přenášených dat jsou vysílány postupně za sebou (v sérii) po jednom páru vodičů v každém směru.
193
www.vsb.cz
Technický popis RS-232 Standard definuje asynchronní sériovou komunikaci pro přenos dat. Pořadí přenosu datových bitů je od nejméně významného bitu (LSB) po bit nejvýznamnější (MSB). Počet datových bitů je volitelný, obvykle se používá 8 bitů, lze se také setkat se 7 nebo 9 bity. Logický stav „0“/„1“ přenášených dat je reprezentován pomocí dvou možných úrovní napětí, které jsou bipolární a dle zařízení mohou nabývat hodnot ±5 V, ±10 V, ±12 V nebo ±15 V. Nejčastěji se používá varianta při které logické hodnotě 1 odpovídá napětí −12 V a logické hodnotě 0 pak +12 V. Základní tři vodiče rozhraní (příjem RxD, vysílání TxD a společná zem GND) jsou doplněny ještě dalšími vodiči sloužícími k řízení přenosu (vstupy DCD, DSR, CTS, RI, výstupy DTR, RTS). Ty mohou a nemusí být používány (zapojeny), nebo mohou být použity pro napájení elektronických obvodů v zařízení, jako je například počítačová myš. Výstupní elektronika je vybavena ochranou proti zkratu, kdy po překročení proudu 20 mA proud již dále neroste. 194
www.vsb.cz
Logické úrovně RS-232 pro datové signály (tj. RXD a TXD): logická 0 je +3 V až +15 V, logická 1 je -3 V až -15 V pro řídící signály (tj. RTS, CTS, DTR, DSR, ...): logická 0 je -3 V až -15 V, logická 1 je +3 V až +15 V Řídící signály mají tedy opačnou logiku než signály přenášející data.
195
www.vsb.cz
MAX232 MAX232 je levný a velmi používaný převodník úrovní RS-232 (sériová linka) na TTL úrovně. Jeho nespornou výhodou je, že potřebuje pouze jeden zdroj napětí a to +5 V, nikoliv +15, -15 a +5 V jako některé jiné převodníky. Obsahuje 2 převodníky TTL → RS232 a 2 převodníky RS232 → TTL.
196
www.vsb.cz
SPI SPI (Serial Peripheral Interface) je sériové periferní rozhraní. Používá se pro komunikaci mezi řídícími mikroprocesory a ostatními integrovanými obvody (EEPROM, A/D převodníky, displeje…). Komunikace je realizována pomocí společné sběrnice. Adresace se provádí pomocí zvláštních vodičů, které při logické nule aktivují příjem a vysílání zvoleného zařízení (piny SS nebo CS). Master - řídí komunikaci pomocí hodinového signálu určuje, se kterým zařízením na sběrnici bude komunikovat pomocí SS Slave Select (někdy CS - Chip Select)
Slave - vysílá podle hodinového signálu, pokud je aktivován pomocí SS/CS 197
www.vsb.cz
Průběh komunikace Pro komunikaci Master nastaví log. 0 na SS zařízení, se kterým chce komunikovat. Pak začne generovat hodinový signál na SCLK a v té chvíli vyšlou obě zařízení svoje data, přičemž MOSI (Master Out, Slave In) je vždy Master výstup, Slave vstup a MISO (Master In, Slave Out) je Master Vstup, Slave výstup. Jakmile jsou data vyslána, může komunikace dále pokračovat: Master dále dodává hodinový signál, hodnota SS se nemění nebo může být ukončena: Master přestane vysílat hodinový signál a nastaví SS do log. 1.
Délka vyslaných dat je buď 8bit (Byte) a nebo 16bit (Word). 198
www.vsb.cz
I2C I²C (anglicky Inter-Integrated Circuit, čteme I-squared-C, nesprávně I-two-C) je multi-masterová počítačová sériová sběrnice vyvinutá firmou Philips, která je používána k připojování nízkorychlostních periferií k základní desce, vestavěnému systému nebo mobilnímu telefonu.
199
www.vsb.cz
Charakteristika I2C Sběrnice rozděluje připojená zařízení na řídící (master – zahajuje a ukončuje komunikaci; generuje hodinový signál SCL) a řízené (slave – zařízení adresované masterem) Sběrnice I²C se hojně používá v různých zařízeních včetně IBM PC kompatibilních počítačů: čtení konfiguračních dat z SPD EEPROM v paměťových DIMM modulech (SDR SDRAM, DDR SDRAM, DDR2) správa PCI karet pomocí spojení SMBus 2.0 přístup k NVRAM čipům obsahujících uživatelská nastavení (na síťové kartě, řadiči) přístup k nízkorychlostním D/A a A/D převodníkům změna kontrastu, teploty barev, vyvážení barev v monitorech (DDC) změna hlasitosti inteligentních reproduktorů řízení OLED a LCD displejů mobilních telefonů čtení údajů o monitorovaných zařízeních (teplota procesoru, rychlost větráčků) čtení hodin reálného času zapínání a vypínání napájení systémových komponent
200
www.vsb.cz
USB USB (Universal Serial Bus) je univerzální sériová sběrnice, moderní způsob připojení periferií k počítači. Nahrazuje dříve používané způsoby připojení (sériový a paralelní port, PS/2, Gameport apod.) pro běžné druhy periférií – tiskárny, myši, klávesnice, joysticky, fotoaparáty, modemy atd., ale i pro přenos dat z videokamer, čteček paměťových karet, MP3 přehrávačů, externích pevných disků a externích optických mechanik.
201
www.vsb.cz
Specifikace USB
202
Maximální délka kabelu mezi sousedními zařízeními je 5 m, jedná se o délku, která je garantovaná. Delší kabel může být, ale nemusí už správně fungovat přenos dat. Kabel obsahuje 4 vodiče. Dva jsou pro napájení (5 V a zemnění). Druhý pár je kroucený a slouží pro přenos dat. I ta nejnižší přenosová rychlost mnohonásobně překračuje možnosti sériového portu. (Při porovnání obou portů je však třeba brát v úvahu i to, že jedno zařízení si nikdy nemůže nárokovat celou šířku pásma.) Sběrnice USB přináší tu výhodu, že při připojení přídavného rozdělovače sběrnice (hub) jsou k dispozici tři nové porty. Celkem je možno na USB připojit až 127 zařízení. Nevýhodou pro amatérského vývojáře je velká složitost USB. Na straně přístroje je třeba použít buďto převodník na USB nebo softwarovou knihovnu. Knihovna komunikuje obvykle jako HID zařízení, která zabere část výpočetního výkonu a řádově 2 kB programové paměti; dále komunikace vyžaduje poměrně rychlé taktování mikrokontroleru. Na straně PC je nutný ovladač. Pro zprovoznění byť jednoduché komunikace je tedy třeba využívat USB knihovny na obou stranách. Kdo se chce vážně zabývat vývojem, stojí ještě před další překážkou: každé zařízení USB má interní číslo dodavatele (vendorlD), které je oficiálně udělováno organizací USB. Zařízení je možno dodávat na trh jen s platným VID.
www.vsb.cz
CAN-BUS CAN (Controller Area Network) je sběrnice využívaná nejčastěji pro vnitřní komunikační síť senzorů a funkčních jednotek v automobilu, z čehož plyne také použití pro automobilovou diagnostiku. Z této aplikační oblasti se CAN rychle rozšířil také do sféry průmyslové automatizace. Jedná se o sériovou datovou sběrnici vyvinutou firmou Robert Bosch GmbH. Elektrické parametry fyzického přenosu jsou specifikované normou ISO 11898. Maximální teoretická rychlost přenosu na sběrnici je 1 Mb/s. CAN patří k průmyslovým komunikačním sítím označovaným jako provozní sběrnice, fieldbus. 203
www.vsb.cz
Protokol CAN-BUS Síťový protokol detekuje a opravuje přenosové chyby vzniklé od okolních elektromagnetických polí. Data se odesílají v rámcích, každý rámec může obsahovat až 8 datových bajtů. Každý rámec obsahuje identifikátor, u sběrnice CAN neexistuje žádná adresa. Obsah zprávy je dán pouze identifikátorem. Tento identifikátor definuje obsah přenášené zprávy a zároveň i prioritu zprávy při pokusu o její odeslání na sběrnici. Vyšší prioritu mají zprávy s nižší hodnotou identifikátoru. Jedna zpráva může být přijata několika zařízeními. 204
www.vsb.cz
LIN Sběrnice LIN je sériová asynchronní sběrnice používající ke komunikaci jednovodičové spojení připojených zařízení. Je navržena pro použití v automobilové technice s ohledem na minimální cenové náklady spojené s její aplikací. Nemá za cíl nahradit v automobilech dnes hojně používanou spolehlivou, robustní a rychlou sběrnicí CAN, ale má pokrýt množinu aplikací, pro které je použití sběrnice CAN přílišným luxusem, nebo zatím nebyly z cenových důvodů napojeny na elektronický řídící systém automobilu. Cena vynaložená na propojení s lokální sítí automobilu má být 2 až 3 nižší ve prospěch LINu.
205
www.vsb.cz
Vlastnosti LIN Jedná se o sběrnici typu single-master/multiple-slave, kde jedno řídící zařízení kontroluje komunikaci s jedním nebo více podřízenými zařízeními. Jednotlivá napojení na jednovodičovou sběrnici tvoří drátový AND a komunikace probíhá maximální přenosovou rychlostí až 20 kbit/s. Ke generování komunikace lze použít hardwarových a softwarových prostředků běžného UART/SCI interface, přičemž podřízené jednotky (slave) nepotřebují k činnosti přesný krystalový generátor hodin, ale vystačí např. s RC oscilátorem. Synchronizaci pro komunikaci totiž provádí řídící zařízení (master) na začátku každé komunikace. Výše zmiňované vlastnosti mají příznivý vliv na cenu komunikačních komponent a umožňují tak snížit cenu i celých jednotlivých zařízení. Koncepce budičů sběrnice vychází ze standardu ISO 9141 s vylepšeními v oblasti EMC. Data jsou zabezpečena kontrolním součtem. Hlavička je zabezpečena dvojicí paritních bitů.
206
www.vsb.cz
Ethernet Ethernet je v informatice souhrnný název pro v současné době nejrozšířenější technologie pro budování počítačových sítí typu LAN. V současné době se používá zejména verze Ethernetu, která používá kroucenou dvojlinku (běžná přenosová rychlost 100 nebo 1000 Mbps), avšak dříve byla velmi rozšířená též varianta používající koaxiální kabel (10 Mbps). Pomocí kroucené dvojlinky jsou počítače propojeny do hvězdy, přičemž se jako rozbočovací prvek používá switch (dříve i hub). Využívá se TCP/IP protokolu 207
www.vsb.cz
Bezdrátové standardy
208
Wi-Fi je v informatice označení pro několik standardů IEEE 802.11 popisujících bezdrátovou komunikaci v počítačových sítích (též Wireless LAN, WLAN). Samotný název WiFi vytvořilo Wireless Ethernet CompatibilityAliance. Tato technologie využívá bezlicenčního frekvenčního pásma, proto je ideální pro budování levné, ale výkonné sítě bez nutnosti pokládky kabelů. Bluetooth je v informatice proprietární otevřený standard pro bezdrátovou komunikaci propojující dvě a více elektronických zařízení, jako například mobilní telefon, PDA, osobní počítač nebo bezdrátová sluchátka. Vytvořen byl v roce 1994 firmou Ericsson a míněn jako bezdrátová náhrada za sériové drátové rozhraní RS-232. ZigBee je bezdrátová komunikační technologie vystavěná na standardu IEEE 802.15.4. Zigbee je poměrně novým standardem platným od listopadu 2004. Podobně jako Bluetooth je určena pro spojení nízkovýkonových zařízení v sítích PAN na malé vzdálenosti do 75 metrů. Díky použití multiskokového ad-hoc směrování umožňuje komunikaci i na větší vzdálenosti bez přímé radiové viditelnosti jednotlivých zařízení. Primární určení směřuje do aplikací v průmyslu a senzorových sítích. GSM (Globální Systém pro Mobilní komunikaci, původně však francouzsky „Groupe Spécial Mobile“) je nejpopulárnější standard pro mobilní telefony na světě.
www.vsb.cz
Děkuji za pozornost
209
www.vsb.cz
Přednáška 9
210
Náplň přednášky 9 Mikroprocesorová rozhraní a jejich programování pro řízení - uživatelské rozhraní - displej, klávesnice.
211
www.vsb.cz
Řadič Řadič je elektronická řídicí jednotka, realizovaná sekvenčním obvodem, která řídí činnost složitých periferií Periferie lze zapojit Zapojení bez řadiče Zapojení s řadičem
212
www.vsb.cz
Klávesnice Maticová klávesnice 4x4
213
www.vsb.cz
Displej Displej (anglicky display) je zařízení pro zobrazování informací jako je text nebo obraz v různé podobě. V elektronických přístrojích slouží k zobrazování různých údajů Vyroben: 214
LCD LED CRT Electronic paper Plasma (PDP) OLED A další … www.vsb.cz
Displej bez řadiče Například sedmi segmentový displej
215
www.vsb.cz
Displej s řadičem Displej MC1604
216
www.vsb.cz
Rozložení pinů 1. GND (zem) 2. VDDnapájení 5V 3. V0 napětí pro nastavení kontrastu 4. RS výběr přenosu dat nebo příkazu (příkaz=0, data=1) 5. R/W nastavení četní/zápis (čtení=1, zápis=0) 6. E vstup povolení 7. - 14. data/příkaz (dolní bit- 7., horní bit – 14.) 15. anoda podsvícení 5V(+) 16. katoda podsvícení
217
www.vsb.cz
Děkuji za pozornost
218
www.vsb.cz