Post on 31-Aug-2019
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: michal.prauzek@vsb.cz, (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 5b2 www.vsb.cz
Harmonogram semestru
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
3 www.vsb.cz
Náplň přednášky 1
Úvod do mikroprocesorové a řídicí techniky
Typy řídicích systému a jejich realizace
Digitální technika
Číselné soustavy
Kódování
5 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:
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í
10 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édia12 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)
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
14 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
Logické operace
Základní logické operace:
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
17 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
Číselné soustavy
Číselná soustava je způsob reprezentace čísel
Poziční
Nepoziční
Poziční číselné soustavy
Jedničková (unární)
Dvojková (binární)
Osmičková (oktální)
Desítková (decimální)
Dvanáctková
Šestnáctková (hexadecimální)
Šedesátková21 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 www.vsb.cz
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
ASCII tabulka
ASCII je anglická zkratka pro American Standard Code
for Information Interchange
28 www.vsb.cz
Náplň přednášky 3
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.
32 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ů
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
35 www.vsb.cz
Historie mikroprocesorů
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 Core i5 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
36 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
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
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
Programátorský model
Programátorský model
umožnuje popsat
hardware pro tvoření
programu
49 www.vsb.cz
Příklad architektury HCS08
40-MHz HCS08 CPU
BDM (Background debugging system)
Breakpointy
32 zdrojů přerušení interrupt/reset
Energetický úsporné režimy: waita 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
50 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
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:
int
short int (short)
long int (long)
char
float
double
long double
60 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 i;
char c, ch;
float 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á 15, 0, 1
osmičková 065, 015, 01
hexadecimální 0x15, 0x3A
63 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
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
č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;
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 () /* bez stredniku */
{
int i, j;
i = 5;
j = j + 2 * i;
return 0;
}69 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í:
int/int celočíselné
int/float reálné
float/int reálné
float/float reálné73 www.vsb.cz
Příkaz if a if-else
if ( <podminka1> )
<prikaz>;
if ( <podminka2> )
<prikaz1>;
else <prikaz2>;
74 www.vsb.cz
podminka1 procesnenula
nula
podminka2 proces1nenula
nula proces2
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
76 www.vsb.cz
podminkaprikaz nula
nenula
continue
break
podminka prikaznenula
nula
continue
break
podminkavyraz1 proces vyraz2nenula
nula
break
continue
FOR
WHILE
DO-WHILE
Syntaxe
// Cyklus do-while
do {
<prikaz>;
} while (<podminka>)
// Cyklus while
while (<podminka>) {
<prikaz>;
}
// Cyklus for
for (<vyraz1>; <podminka>; <vyraz2>) {
<prikaz>;
}
77 www.vsb.cz
Switch
switch (<vyraz>) {
case <case1> :
<prikaz1>;
break;
case <case2> :
<prikaz2>;
break;
case <case3> :
<prikaz3>;
break;
default :
<prikaz4>;
break;
78 www.vsb.cz
vyraz
prikaz1
prikaz2
prikaz3
prikaz4
case1
case2
case3
default
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
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 <filename>
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:
auto
extern
static
register
108 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
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
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
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
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
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
Level shiffter
139 www.vsb.cz
PORT A
bit 0
MCU
Zařízení 1
Data
PORT A
bit 1
Data
Zařízení 2
Level
shifter
5 V
5 V
5 V
3.3 V
Zesilovač
140 www.vsb.cz
PORT A
bit 0
MCU
R
U
DUD
UCE
IB
RB
UCC
IC
PORT A
bit 0
MCU
R
U
DUD
UR
RD
UCC
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
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
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
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ův-
Nyquistů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í
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
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
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
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
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émzesilovač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
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 tolerantAD 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
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
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 RS-
232C 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 aA/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
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.202 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
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éž WirelessLAN, 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ýchzaří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écialMobile“) je
nejpopulárnější standard pro mobilní telefony na světě.
208 www.vsb.cz
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
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:
LCD
LED
CRT
Electronic paper
Plasma (PDP)
OLED
A další …214 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