214
Mikroprocesorová a řídicí technika Ing. Michal Prauzek, Ph.D. zimní semestr 2015/2016

Mikroprocesorová a řídicí technika - homel.vsb.czhomel.vsb.cz/~pra132/files/MRT_prednasky_2015_2016.pdf · 1980 -Intel 8051 -8bitový mikroprocesor se základní sadou periferií

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

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 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

Přednáška 1

4

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

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:

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

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é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

Digitální technika

Pracuje se signály ve formě číslicových dat

16 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

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

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

Děkuji za pozornost

30 www.vsb.cz

Přednáška 2

31

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

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

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

Pipelining

52 www.vsb.cz

Děkuji za pozornost

54 www.vsb.cz

Přednáška 3

55

Náplň přednášky 3

Kompilace

Proměnné

Výrazy

Operátory

Řídicí struktury

56 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

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í:

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

Děkuji za pozornost

81 www.vsb.cz

Přednáška 4

82

Náplň přednášky 4

Typová konverze

Preprocesor

Funkce

Pointery

Pole, struktury, uniony

83 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

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

138 www.vsb.cz

LVstupy

Výstupy

0 1 2 3 4 5

H

L H

-0,5 0,8 2 5,5

0 0,4 2,4 5

[V]

[V]

[V]

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

Ošetření zákmitů

142 www.vsb.cz

PORT A

bit 0MCU

RP

U

UCC

RF

CFD

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ů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í 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ů

Komparační

Aproximační

Integrační

Sigma Delta

173 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é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

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 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

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 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

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:

LCD

LED

CRT

Electronic paper

Plasma (PDP)

OLED

A další …214 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