MIKROPOČÍTAČE

Transkript

MIKROPOČÍTAČE
Podklady pro přednášky z předmětu
MIKROPOČÍTAČE
Přednášející:
prof. Ing. Vladimír Vašek, CSc.
OBSAH
1 ÚVOD DO MIKROPOČÍTAČŮ ........................................................................................... 1
1.1
ROZVOJ MIKROPROCESOROVÉ TECHNIKY JAKO PROSTŘEDKU PRO ŘÍZENÍ
TECHNOLOGICKÝCH PROCESŮ......................................................................................... 1
1.2
PŘEHLED POUŽITÍ µP: ............................................................................................... 2
1.3
ZÁKLADNÍ POJMY...................................................................................................... 5
1.4
PROGRAMOVÉ VYBAVENÍ: ...................................................................................... 5
1.4
PROGRAMOVÉ VYBAVENÍ: ...................................................................................... 6
1.6
INSTRUKCE ................................................................................................................. 8
1.6.1 Formáty instrukcí....................................................................................................... 8
1.7
PAMĚTI ........................................................................................................................ 9
1.7.1 Charakteristické parametry pamětí: ............................................................................ 9
1.7.2 Typy polovodičových pamětí:..................................................................................... 9
1.7.3 Zásobníková paměť ..................................................................................................10
1.8
ČÍSELNÉ SOUSTAVY.................................................................................................12
1.8.1 Desítková (dekadická) soustava.................................................................................12
1.8.2 Binární soustava .......................................................................................................13
1.8.3 Octalová (osmičková) soustava .................................................................................14
1.8.4 Hexadecimální (šestnáctková) soustava .....................................................................15
1.8.5 BCD kód (Binary Coded Decimal) ............................................................................16
1.8.6 Základní logické funkce ............................................................................................17
1.9
ZOBRAZENÍ ČÍSELNÝCH HODNOT ........................................................................19
1.9.1 Zobrazení ve dvojkovém doplňkovém kódu................................................................19
1.9.2 Zobrazení v přímém kódu..........................................................................................20
1.9.3 Dosazování příznaku přenosu (C)..............................................................................21
2 MIKROPOČÍTAČ MRS32................................................................................................... 1
2.1
POLE REGISTRŮ 68HC11 ........................................................................................... 4
2.1.1 Přehled registrů 1...................................................................................................... 4
2.1.2 Přehled registrů 2....................................................................................................... 6
2.2
PORTY.......................................................................................................................... 8
2.2.1 Port A........................................................................................................................ 8
2.2.2 Port D ......................................................................................................................11
2.2.3 PORT E ...................................................................................................................12
2.3
INSTRUKČNÍ SOUBOR ..............................................................................................12
2.3.1 Skupiny instrukcí......................................................................................................12
2.4
REGISTRY 68HC11.....................................................................................................13
2.5
PŘÍZNAKOVÝ REGISTR CCR ...................................................................................14
2.6
ZPŮSOBY ADRESOVÁNÍ...........................................................................................15
2.6.1 Implicitní (adresování akumulátoru) ..........................................................................15
2.6.2 Bezprostřední adresování (Immediate) .......................................................................15
2.6.3 Přímé a přímé rozšířené adresování ...........................................................................16
2.6.4 Indexové adresování..................................................................................................17
2.6.5 Relativní adresování..................................................................................................17
2.7
SYSTÉM PŘERUŠENÍ U 68HC11...............................................................................17
2.7.1 Postup při obsluze přerušení:.....................................................................................18
2.7.2 Maskovatelné přerušení (IRQ)...................................................................................20
2.7.3 Nemaskovatelné přerušení (XIRQ) ............................................................................21
2.7.4 Reset ........................................................................................................................21
2.7.5 Softwarové přerušení ................................................................................................22
3 MOTOROLA 68HC08........................................................................................................... 1
4 MODUL DISPLEJE LTN 211............................................................................................... 1
4.1
INICIALIZACE DISPLEJE ........................................................................................... 2
4.2
INSTRUKCE PRO OVLÁDÁNÍ DISPLEJE.................................................................. 2
4.3
INSTRUKCE LZE ROZDĚLIT NA:.............................................................................. 3
4.4
POPIS JEDNOTLIVÝCH INSTRUKCÍ......................................................................... 4
4.4.1 Smazání displeje ........................................................................................................ 4
4.4.2 Kurzor na počátek...................................................................................................... 4
4.4.3 Vstupní režim ............................................................................................................ 5
4.4.4 Režim displeje............................................................................................................ 5
4.4.5 Posun kurzoru nebo textu........................................................................................... 6
4.4.6 Funkční soubor .......................................................................................................... 6
4.4.7 Nastavení adresy v paměti RWM u generátoru znaků ................................................. 7
4.4.8 Nastavení adresy v paměti zobrazovaného textu ......................................................... 7
4.4.9 Čtení příznaku obsazení a adresy................................................................................ 8
4.4.10 Zápis dat do paměti textu a generátoru znaků ............................................................. 8
4.4.11 Čtení dat z paměti textu nebo generátoru znaků .......................................................... 9
4.5
PŘÍKLADY KOMUNIKACE MEZI 68HC11 A DISPLEJEM: ...................................... 9
4.6
PAMĚŤOVÝ PROSTOR DISPLEJE ............................................................................10
4.6.1 Mapa paměťového prostoru pro uložení zobrazovaných kódů: ...................................10
4.6.2 Generátor znaků........................................................................................................10
4.7
POPIS OVLADAČE DISPLEJE ...................................................................................12
4.7.1 Podprogramy ovladače:.............................................................................................12
5 ASSEMBLER......................................................................................................................... 1
5.1
PROGRAMOVÁNÍ 68HC11 V ASSEMBLERU............................................................ 1
5.2
DIREKTIVY.................................................................................................................. 4
5.3
ZÁZNAMY TYPU S.....................................................................................................10
5.3.1 Obsah záznamů typu S..............................................................................................10
5.3.2 Druhy záznamů typu S..............................................................................................12
5.3.3 Vytváření záznamů typu S.........................................................................................13
6 REAL – TIMOVÉ OPERAČNÍ SYSTÉMY......................................................................... 1
6.1
STRUKTURA RTOS..................................................................................................... 2
6.1.1 Jádro OS ................................................................................................................... 2
6.1.2 Data .......................................................................................................................... 2
6.2
JÁDRO RTOS - PROVÁDÍ PLÁNOVÁNÍ A PŘEPÍNÁNÍ............................................ 3
6.2.1 Příkazy pro změnu stavu úloh .................................................................................... 3
6.3
SPRÁVA A ŘÍZENÍ PAMĚTI ....................................................................................... 4
6.3.1 Statický systém.......................................................................................................... 4
6.3.2 Dynamický systém - technika plovoucí paměti............................................................ 4
6.3.3 Technika segmentace programu.................................................................................. 5
6.3.4 Sdílení kódu............................................................................................................... 6
6.4
PLÁNOVÁNÍ ÚLOH, PŘIDĚLOVÁNÍ PROCESORU.................................................. 7
6.5
PLÁNOVACÍ STRATEGIE........................................................................................... 8
6.5.1 Cyklické plánování..................................................................................................... 8
6.5.2 Prioritní strategie ....................................................................................................... 9
6.5.3 Kombinované strategie............................................................................................... 9
6.5.4 Preemtivní a nepreemtivní plánování .......................................................................... 9
PRIORITNÍ ÚROVNĚ ........................................................................................................11
6.6
RTOS PRO PC .............................................................................................................13
6.6.1 Datová struktura procesu ..........................................................................................14
6.6.2 Datová struktura schránky ........................................................................................15
6.6.3 Kódy chybových hlášení............................................................................................16
6.6.4 Služby pro práci s procesory .................................................................................17
6.6.5 Služby pro práci se schránkami a zprávami .........................................................21
6.7
CHARAKTERISTIKA RTMON - HC11 ......................................................................24
6.7.1 Volání služeb ............................................................................................................25
6.7.2 Popis služeb..............................................................................................................26
6.8
PROGRAMOVÝ SYSTÉM DEMORTM......................................................................39
7 PROPOJENÍ S TECHNOLOGICKÝM PROCESEM......................................................... 1
7.1
JEDNOTKA PRO STYK S TECHNOLOGICKÝM PROCESEM.................................. 1
7.1.1 Osmibitový A/D PŘEVODNÍK + 8 binárních vstupů .............................................. 1
7.1.2 Dvanáctibitový A/D převodník................................................................................. 3
7.1.3 Osmibitový D/A převodník + 8 binárních výstupů ................................................... 5
7.1.4 Dvanáctibitový D/A převodník................................................................................. 6
7.1.5 Obvod binárních vstupu/výstupu ................................................................................ 8
7.2
STANDARDNÍ ROZHRANÍ RS232C ........................................................................... 8
7.2.1 Přenosy na větší vzdálenost .......................................................................................13
7.2.2 Časová synchronizace signálů ...................................................................................14
RS 232 C ≈V24 s par. V28 ..................................................................................................14
8 PLC ( PA ) SYSTÉMY........................................................................................................... 1
8.1
PA SE SKLÁDÁ Z......................................................................................................... 1
8.2
TŘÍDĚNÍ PA- DLE RŮZNÝCH HLEDISEK................................................................. 2
8.3
BLOKOVÉ SCHÉMA TYPICKÉHO PA ....................................................................... 4
8.4
POČÍTAČOVĚ ŘÍZENÁ VÝROBA (CIM).................................................................. 5
8.5
ZAŘAZENÍ PROGRAMOVATELNÉHO AUTOMATU MEZI ŘÍDICÍ SYSTÉMY ..... 6
8.6
HLAVNÍ CHARAKTERISTIKA PA ............................................................................. 7
8.7
TYPY PA....................................................................................................................... 7
8.7.1 Hledisko konfigurace PLC ......................................................................................... 7
8.7.2 Hledisko velikosti a konstrukčního uspořádání............................................................ 7
8.7.3 Modulární PLC.......................................................................................................... 8
8.7.4 Programovatelné pracovní stanice .............................................................................. 8
8.8
KONSTRUKČNÍ A ELEKTRICKÉ PROVEDENÍ PA .................................................. 9
8.9
BINÁRNÍ VSTUPNÍ JEDNOTKY................................................................................10
8.10 BINÁRNÍ VÝSTUPNÍ JEDNOTKY .............................................................................11
8.11 KOMBINOVANÉ JEDNOTKY BINÁRNÍCH VSTUPŮ A VÝSTUPŮ ........................12
MIKROPOČÍTAČE -ÚVOD DO MIKROPOČÍTAČŮ
1-1
Poznámky
1
ÚVOD DO MIKROPOČÍTAČŮ
1.1 Rozvoj mikroprocesorové techniky jako prostředku pro řízení
technologických procesů
1946 -
John von Neumann formuloval moderní koncepci číslicového počítače
1957 – 58 první aplikace číslicových počítačů pro řízení technologických procesů
1960 -
první minipočítače, řídicí počítače se z nich vytváří koncem šedesátých let
- logické sítě s pevnou strukturou
- logické sítě s proměnnou strukturou
PLA (Programmable Logic Array)
PROM (Programmable Read Only Memory)
1971 -
mikroprocesor 4004 Intel - 4 bity
1972 -
mikroprocesor 8008 Intel – 8 bitů
stavebnice MCS 4, MCS 8
1974 –
mikroprocesor 8080
mikroprocesorové řezy I 3000
1976 -
I 8085, Z 80, M 660
1978 -
I 8086, Z 8000, M 6800 – 16 bitů
jednočipové mikropočítače I 8048
1984 -
I 80286 – 16 bitů až 16 MB RAM,
1985 -
I 80386 – 32 bitů (80386 SX vnitřně) až 4 GB RAM
Poznámky
MIKROPOČÍTAČE -ÚVOD DO MIKROPOČÍTAČŮ
1-2
Poznámky
1.2 Přehled použití µP:
•
měřící a regulační technika – měřící ústředny, regulátory, řídicí systémy
výpočetní technika – procesory, terminály,
•
číslicové řízení strojů – obráběcí stroje, vstřikovací stroje, dopravníky, vlastní
výroba µ elektronických součástek,
•
řízení robotů a manipulátorů,
•
automobily – řízení zapalování a dalších agregátů, signalizace, (úspora energie),
•
registrační pokladny – digitální zobrazovače, mincové automaty, prodej jízdenek,
systémy rezervace letenek,
•
domácnosti – tzv. domácí počítače,
•
hračky – využití nedokonalých obvodů.
Poznámky
MIKROPOČÍTAČE -ÚVOD DO MIKROPOČÍTAČŮ
Poznámky
Aplikace µP pro řízení technologických procesů
Poznámky
1-3
MIKROPOČÍTAČE -ÚVOD DO MIKROPOČÍTAČŮ
Poznámky
Sběrnice:
•
adresová
•
datová
•
řídicí
Poznámky
1-4
MIKROPOČÍTAČE -ÚVOD DO MIKROPOČÍTAČŮ
1-5
Poznámky
1.3 Základní pojmy
Mikroprocesor
•
základní část mikropočítače,
•
v podstatě centrální jednotka CPU (Central Procesing Unit),
•
obsahuje:
- aritmeticko – logickou jednotku ALU (Aritmetic Logic Unit),
- pracovní registry vyrovnávací paměti a řídicí obvody – řadič.
Mikropočítač
•
mikroprocesor,
•
obvody zajišťující komunikaci s okolím (V/V zařízení),
•
operační paměť.
Mikropočítačový systém:
•
technické vybavení
•
programové vybavení
1.4
Poznámky
MIKROPOČÍTAČE -ÚVOD DO MIKROPOČÍTAČŮ
Poznámky
Programové vybavení:
1) základní
2) aplikační
Základní:
•
programovací jazyky:
- strojově orientované (ass.)
- problémově orientované
•
překladače jazyků,
•
operační systémy pro práci v reálném čase,
•
služební programy,
•
knihovna standardních pp.
•
testovací a diagnostické programy,
•
vytváří si uživatel sám,
•
universální aplikační moduly (pro řešení podobných úloh),
•
technologicky orientované (pro jistý typ aplikace).
Aplikační:
Poznámky
1-6
MIKROPOČÍTAČE -ÚVOD DO MIKROPOČÍTAČŮ
1-7
Poznámky
1.5
Registry CPU
Registr
•
logický obvod pro dočasné uložení informace,
•
některé registry jsou přístupné programátorovi (programem lze měnit
jejich obsah),
•
jiné ne.
Základní registry ( přístupné programátorovi)
•
čítač instrukcí – obsahuje vždy adresu instrukce, která se bude provádět
v příštím kroku,
•
universální registry – mají obvykle délku jedno slovo a jsou určeny
k uložení dat, která slouží jako operandy při provádění instrukcí,
•
indikační registry – obvykle jednobitové registry, které indikují určitý
stav, např. příznak znaménka nuly, přenosu, parity,
•
ukazatel zásobníku - obsahuje aktuální adresu vrcholu zásobníkové
paměti.
Registry nepřístupné programátorovi:
Poznámky
•
instrukční registr – obsahuje kód instrukce, která se právě provádí,
•
adresový registr paměti – obsahuje adresu místa paměti, s níž se právě
pracuje,
•
datový registr paměti – slouží k uložení informací (dat nebo instrukcí)
přenášených mezi hlavní pamětí a CPU,
MIKROPOČÍTAČE -ÚVOD DO MIKROPOČÍTAČŮ
1-8
Poznámky
1.6 Instrukce
Každá dílčí činnost – operace – je uskutečněna jednou instrukcí. Počet instrukcí u současně
používaných µ - procesorů může být max. 256.
V zásadě lze instrukci rozložit na části:
•
instrukční kód, který udává, jaká operace se má provést
•
určení způsobu adresování
•
operandy, se kterým instrukce pracuje – pokud je zapotřebí
Délka instrukce 1 – 3 byty.
1.6.1 Formáty instrukcí
ABA
adr. inst.
kód
ADDA #$3F
adr. inst.
kód
adr.+1 přímý
operand
LDX #$1275
adr. inst. kód
Poznámky
adr.+1 nižší řády adresy
adr.+2 vyšší řády
MIKROPOČÍTAČE -ÚVOD DO MIKROPOČÍTAČŮ
1-9
Poznámky
1.7 Paměti
1.7.1 Charakteristické parametry pamětí:
•
kapacita – množství dat, které lze do paměti umístit (byty, kB – nás. 1024, MB –
nás. 1048 576).
•
cyklus paměti – minimální časový interval mezi po sobě jdoucími příkazy k činnosti
paměti
•
vybavovací doba – časový interval mezi požadavkem na přenos informace z paměti a
objevením informace na výstupu paměti
•
cena jednoho bitu – podíl ceny a kapacity paměti
1.7.2 Typy polovodičových pamětí:
RWM, RAM – (random Access memory) – výběr i uložení
ROM –
(read only memory) – jen výběr (program zavádí výrobce)
PROM –
(programmable read only memory) – jen výběr (program si zavádí uživatel)
EPROM –
opakované nahrávání uživatelem, mazání UV zářením (omezený počet)
EEPROM -
elektronicky mazatelné pevné paměti
Poznámky
MIKROPOČÍTAČE -ÚVOD DO MIKROPOČÍTAČŮ
1 - 10
Poznámky
1.7.3 Zásobníková paměť
Je vymezený úsek paměti RAM pro uchování (přechodné) hodnot údajů a adres.
(zpracování přerušení, vyvolání a návrat z podprogramů).
Zásobníková paměť typu LIFO (last in- first out)
Ukazatel zásobníku obsahuje adresu vrcholu zásobníku. (SP)
Poznámky
MIKROPOČÍTAČE -ÚVOD DO MIKROPOČÍTAČŮ
Poznámky
Poznámky
1 - 11
MIKROPOČÍTAČE -ÚVOD DO MIKROPOČÍTAČŮ
1 - 12
Poznámky
1.8 Číselné soustavy
1.8.1 Desítková (dekadická) soustava
•
je třeba zobrazit 10 stavů – číslice 0 - 9
Dvojková (binární) soustava
•
používá pouze 2 stavy (např. vypnuto – zapnuto, vyšší úroveň signálu – nižší úroveň
signálu apod…) číslice 0 - 1
Matematické zobrazení číselné soustavy
N = ( a n r n + a n −1r n −1 + ....... + a 0 r 0 + .... + a n r − n )
a = 0 − 9; r = 10
n– určuje pozici v čísle
2
1
0
−1
Příklad: (937,5)10 = (9 * 10 ) + (3 * 10 ) + (7 *10 ) + (5 * 10 ) = 900 + 30 + 7 + 0,5 = 937,5
(10110,11)2 = (1 * 24 ) + (0 * 23 ) + (1 * 22 ) + (1 * 21 ) + (0 * 20 ) + (1 * 2−1 ) + (1 * 2−2 )
Převod desítkového čísla na dvojkové:
102
: 2 = 51
zbytek 0
51
: 2 = 25
1
25
: 2 = 12
1
12
: 2 =
6
0
6
: 2 =
3
0
3
: 2 =
1
1
1
: 2 =
0
1
(102)10 = (1100110) 2
Zkouška:
0 * 20 + 1 * 21 + 1* 22 + 0 * 23 + 0 * 24 + 1 * 25 + 1 * 26 = 2 + 4 + 32 + 64 = 102
Poznámky
MIKROPOČÍTAČE -ÚVOD DO MIKROPOČÍTAČŮ
1 - 13
Poznámky
1.8.2 Binární soustava
Pravidla dvojkové aritmetiky:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 0 (1)
Nevýhody:
váha
•
čísla jsou dlouhá
•
časté chyby
•
špatně se pamatují
7
6
5
4
3
2
1
0
2
2
2
2
2
2
2
2
1
0
0
1
0
1
0
1
1 * 2 0 + 0 * 21 + 1 * 2 2 + 0 * 2 + 1 * 2 4 + 0 * 2 5 + 0 * 2 6 + 1 * 2 7 =
= 1 + 4 + 16 + 128 = (149 ) 10 = (10010101 ) 2
max
(11111111) 2 = (255)10
K převodu mezi dvojkovými a desítkovými čísly se používají KÓDY.
KÓD je pravidlo, podle něhož určité kombinaci nul a jedniček se přiřazuje určité desítkové
číslo.
Poznámky
MIKROPOČÍTAČE -ÚVOD DO MIKROPOČÍTAČŮ
Poznámky
1.8.3 Octalová (osmičková) soustava
2
149:
2
5
1 0 0 1 0 1 0 1
5 * 8 0 + 2 * 81 + 2 * 8 2 = 5 + 16 + 128 = (149 )10 = ( 225 ) 8
3
252:
7
4
1 1 1 1 1 1 0 0
4 * 8 0 + 7 * 81 + 3 * 8 2 = 4 + 56 + 192 = ( 252 )10 = ( 374 ) 8
max:
( 377 ) 8 = ( 255 )10
tři číslice :
nejvyšší řád
0÷3
zbývající řády 0÷7
Poznámky
1 - 14
MIKROPOČÍTAČE -ÚVOD DO MIKROPOČÍTAČŮ
Poznámky
1.8.4 Hexadecimální (šestnáctková) soustava
9
149:
5
1 0 0 1 0 1 0 1
vyšší hex.
číslice
nižší hex.
číslice
5 * 160 + 9 *161 = 5 + 144 = (149)10 = (95)16
F
252:
C
1 1 1 1 1 1 0 0
12 *160 + 15 * 161 = 12 + 240 = ( 252)10 = ( FC )16
max
( FF )16 = (255)10
dvě hex. číslice 0 ÷ F
Poznámky
1 - 15
MIKROPOČÍTAČE -ÚVOD DO MIKROPOČÍTAČŮ
1 - 16
Poznámky
1.8.5 BCD kód (Binary Coded Decimal)
9
97:
7
1 0 0 1 0 1 1 1
vyšší dek.
číslice
nižší dek.
číslice
Dvě číslice 0 ÷ 9
Max
(99)10
Kód 8421:
0
0
0
0
0
7
0
1
1
1
14 (E)
1
1
1
0
1
0
0
0
1
8
1
0
0
0
15 (F)
1
1
1
1
2
0
0
1
0
9
1
0
0
1
3
0
0
1
1
10 (A)
1
0
1
0
4
0
1
0
0
11 (B)
1
0
1
1
5
0
1
0
1
12 (C)
1
1
0
0
6
0
1
1
0
13 (D)
1
1
0
1
Poznámky
MIKROPOČÍTAČE -ÚVOD DO MIKROPOČÍTAČŮ
Poznámky
1.8.6 Základní logické funkce
Logický součet (NEBO, OR)
A
B
C
0
0
0
0
1
1
1
0
1
1
1
1
A+B=C
A U B
Logický součin („A“, AND)
A
B
C
0
0
0
0
1
0
1
0
0
1
1
1
A*B=C
A∩B
Negace
A
B
0
1
1
0
Poznámky
A= B
B=A
1 - 17
MIKROPOČÍTAČE -ÚVOD DO MIKROPOČÍTAČŮ
1 - 18
Poznámky
Ekvivalence
A
B
C
C = A * B + A * B = A * B * A * B = ( A + B) * ( A + B) =
0
0
1
= AA + BA + AB + B B = BA + A B
0
1
0
1
0
0
1
1
1
Exklusive – OR
A
B
C
C = AB + AB = AB * AB = ( A + B) * ( A + B) =
0
0
0
= AA + AB + B A + BB = AB + B A
0
1
1
1
0
1
1
1
0
Poznámky
MIKROPOČÍTAČE -ÚVOD DO MIKROPOČÍTAČŮ
Poznámky
1.9 Zobrazení číselných hodnot
1.9.1 Zobrazení ve dvojkovém doplňkovém kódu
•
kladné hodnoty v přímém dvojkovém kódu
•
záporné hodnoty – dvojkové doplňky
•
7. bit představuje znaménko
•
vytvoření dvojkového doplňku : negace kladného čísla a přičtení 1:
Př: (12)10 =
0:+
0000 1100
(−12)10 = 1111 0011
+ 0000 0001
1111 0100
Odečítání = přičtení dvojkového doplňku
Zobrazení čísel od
+127
- 0111
1111
0
- 0000
0000
-128
- 1000
0000
.
.
Poznámky
1: -
1 - 19
MIKROPOČÍTAČE -ÚVOD DO MIKROPOČÍTAČŮ
1 - 20
Poznámky
Při práci s většími čísly slučujeme několik slabik vedle sebe (znaménkový bit je nejvyšší).
Sčítání s operandy většími než jedna slabika se provádí podprogramy, které využívají
instrukce sečítání s přenosem.
Př.: ADC reg.
střadač + registr + C
střadač
1.9.2 Zobrazení v přímém kódu
•
kladná i záporná čísla v přímém kódu na bitech 0 ÷ 6;
•
7.bit znaménkový
Př.:
5:
0000 0101
-5: 1000 0101
Při práci pouze s kladnými hodnotami zobrazení v rozsahu 0 ÷ 255
Poznámky
MIKROPOČÍTAČE -ÚVOD DO MIKROPOČÍTAČŮ
1 - 21
Poznámky
1.9.3 Dosazování příznaku přenosu (C)
Sčítání:
C=1, když vznikne přenos z nejvyššího řádu:
•
jsou-li vstupní operandy sčítání v rozsahu (127, -128) je vždy C=1 při součtu dvou
záporných čísel
•
jsou-li operandy nezáporné čísla (0 – 255) je C=1 při vzniku výsledku většího než
255
Př.: (- 3) + (- 5) = (- 8)
3:
-3:
+
8:
-8:
+
0000 0011
1111 1100
1
1111 1101
0000 1000
1111 0111
1
1111 1000
Př.: 255 + 1 = 256 (>255)
+
C=1
1111 1111
1
0000 0000
Poznámky
5:
-5:
+
+
0000 0101
1111 1010
1
1111 1011
= 1111 1000
přenos C=1
MIKROPOČÍTAČE -ÚVOD DO MIKROPOČÍTAČŮ
1 - 22
Poznámky
Odčítání:
U instrukcí odčítání se do C dosadí negovaná hodnota bitu přenosu. („výpůjčka
Př.: 5-3
5: 0000
-3: 0000
0101
0011
1111
1100
+
1
1111
1
0000
1111
0000
0101
1101
0010
po ukončení C =1= 0
1101
Př.: 4-6
4: 0000
-6: 0000
0100
0110
1111
1001
+
1
1111
Poznámky
„)
1010
0
0000
1111
1111
0100
1101
1110
po ukončení C=Ō=1
=
2: 0000
-2: 1111
0010
1101
1
1111
1110
-2:
MIKROPOČÍTAČE -MIKROPOČÍTAČ MRS32
Poznámky
2
MIKROPOČÍTAČ MRS32
•
mikroprocesor 68HC11A1 v rozšířeném režimu
•
porty A, B, C, D, E
•
64 kB paměti
•
vnitřní paměť 256 byte
•
64 byte blok spec. registrů
•
LCD displej - 2 řádky po 16 znacích 5 x 7 bodů
•
klávesnice - 15 tlačítek
•
512 byte EEPROM
•
obvod reálného času
•
přerušovací systém
Poznámky
2-1
MIKROPOČÍTAČE -MIKROPOČÍTAČ MRS32
Poznámky
Poznámky
2-2
MIKROPOČÍTAČE -MIKROPOČÍTAČ MRS32
Poznámky
Mapa paměťového prostoru:
Poznámky
2-3
MIKROPOČÍTAČE -MIKROPOČÍTAČ MRS32
2-4
Poznámky
2.1 POLE REGISTRŮ 68HC11
Pole registrů obsahuje 64 řídicích a stavových registrů umístěných standardně od adresy
$_000, tzn. že nejvyšší půlbajt adresy (nahrazený čárou) lze naprogramovat v registru INIT
a tím umístit toto pole registrů na počátek kterýchkoliv čtyř kilobajtů adresovatelného
paměťového prostoru. Po resetu se počátek registrového pole automaticky nastavuje na
adresu $1000.
2.1.1 Přehled registrů 1
$1000
Bit 7
6
5
4
3
2
1
Bit 0
PA 7
PA 6
PA 5
PA 4
PA 3
PA 2
PA 1
PA 0
$1001
PORTA
Reserved
$1002
STAF
STAI
CWOM
HNDS
OIN
PLS
EGA
INVB
PIOC
$1003
PC7
PC6
PC5
PC4
PC3
PC2
PC1
PC0
PORTC
$1004
PB 7
PB 6
PB 5
PB 4
PB 3
PB 2
PB 1
PB 0
PORTB
$1005
PCL7
PCL6
PCL5
PCL4
PCL3
PCL2
PCL1
PCL0
PORTCL
$1006
Reserved
$1007
DDC7
DDC6
DDC5
DDC4
DDC3
DDC2
DDC1
DDC0
DDRC
$1008
0
0
PD5
PD4
PD3
PD2
PD1
PD0
PORTD
$1009
0
0
DDD5
DDD4
DDD3
DDD2
DDD1
DDD0
DDRD
$100A
PE7
PE6
PE5
PE4
PE3
PE2
PE1
PE0
PORTE
$100B
FOC1
FOC2
FOC3
FOC4
FOC5
0
0
0
CFORC
$100C
OC1M7
OC1M6
OC1M5
OC1M4
OC1M3
0
0
0
OC1M
Poznámky
MIKROPOČÍTAČE -MIKROPOČÍTAČ MRS32
2-5
Poznámky
$100D
OC1D7
OC1D6
OC1D5
OC1D4
OC1D3
0
0
0
OC1D
$100E
Bit 15
14
13
12
11
10
9
Bit 8
TCNT H
$100F
Bit 7
6
5
4
3
2
1
Bit 0
TCNT H
$1010
Bit 15
14
13
12
11
10
9
Bit 8
TIC1 H
$1011
Bit 7
6
5
4
3
2
1
Bit 0
TIC1 L
$1012
Bit 15
14
13
12
11
10
9
Bit 8
TIC2 H
$1013
Bit 7
6
5
4
3
2
1
Bit 0
TIC2 L
$1014
Bit 15
14
13
12
11
10
9
Bit 8
TIC3 H
$1015
Bit 7
6
5
4
3
2
1
Bit 0
TIC3 L
$1016
Bit 15
14
13
12
11
10
9
Bit 8
TOC1 H
$1017
Bit 7
6
5
4
3
2
1
Bit 0
TOC1 L
$1018
Bit 15
14
13
12
11
10
9
Bit 8
TOC2 H
$1019
Bit 7
6
5
4
3
2
1
Bit 0
TOC2 L
$101A
Bit 15
14
13
12
11
10
9
Bit 8
TOC3 H
$101B
Bit 7
6
5
4
3
2
1
Bit 0
TOC3 L
$101C
Bit 15
14
13
12
11
10
9
Bit 8
TOC4 H
$101D
Bit 7
6
5
4
3
2
1
Bit 0
TOC4 L
$101E
Bit 15
14
13
12
11
10
9
Bit 8
TI4O5 H
$101F
Bit 7
6
5
4
3
2
1
Bit 0
TI4O5 L
$1020
OM2
OL2
OM3
OL3
OM4
OL4
OM5
OL5
TCTL1
$1021
EDBG
EDG4A
EDG1B
EDG1A
EDG2B
EDG2A
EDG3B
EDG3A
TCTL2
$1022
OC1I
OC2I
OC3I
OC4I
I405I
IC1I
IC2I
IC3I
TMSK1
Poznámky
MIKROPOČÍTAČE -MIKROPOČÍTAČ MRS32
2-6
Poznámky
2.1.2 Přehled registrů 2
Bit 7
6
5
4
3
2
1
Bit 0
$1023
OC1F
OC2F
OC3F
OC4F
1405F
IC1F
IC2F
IC3F
$1024
TOI
RTII
PAOVI
PAII
0
0
PR1
PR0
$1025
TOF
RTIF
PAOVF
PAIF
0
0
0
0
TFLG2
$1026
DDRA7
PAEN
PAMOD
PEDGE
DDRA3
14/O5
RTR1
RTR0
PACTL
$1027
Bit 7
6
5
4
3
2
1
Bit 0
PACNT
$1028
SPIE
SPE
DWOM
MSTR
CPOL
CPHA
SPR1
SPR0
SPCR
$1029
SPIF
WCOL
0
MODF
0
0
0
0
SPSR
$102A
Bit 7
6
5
4
3
2
1
Bit 0
SPDR
$102B
TCLR
0
SCP1
SCP0
RCKB
SCR2
SCR1
SCR0
BAUD
$102C
R8
T8
0
M
WAKE
0
0
0
SCCR1
$102D
TIE
TCIE
RIE
ILIE
TE
RE
RWU
SBK
SCCR2
$102E
TDRE
TC
RDRF
IDLE
OR
NF
FE
0
SCSR
$102F
R7/T7
R6/T6
R5/T5
R4/T4
R3/T3
R2/T2
R1/T1
R0/T0
SCDR
$1030
CCF
0
SCAN
MULT
CD
CC
CB
CA
ADCTL
$1031
Bit 7
6
5
4
3
2
1
Bit 0
ADR1
$1032
Bit 7
6
5
4
3
2
1
Bit 0
ADR2
$1033
Bit 7
6
5
4
3
2
1
Bit 0
ADR3
$1034
Bit 7
6
5
4
3
2
1
Bit 0
ADR4
$1035
0
0
0
PTCON
BPRT3
BPRT2
BPRT1
BPRT0
BPROT
$1036-8
Poznámky
TFLG1
TMSK2
Reserved
MIKROPOČÍTAČE -MIKROPOČÍTAČ MRS32
2-7
Poznámky
$1039
ADPU
CSEL
IRQE
DLY
CME
0
CR1
CR0
OPTION
$103A
Bit 7
6
5
4
3
2
1
Bit 0
COPRST
$103B
ODD
EVEN
ELAT
BYTE
ROW
ERASE
ELAT
PGM
PPROG
$103C
RBOOT
SMOD
MDA
IRVNE
PSEL3
PSEL2
PSEL1
PSEL0
HPRIO
$103D
RAM3
RAM2
RAM1
RAM0
REG3
REG2
REG1
REG0
INIT
$103E
TILOP
0
OCCR
CBYP
DISR
FOM
FCOP
TCON
TEST1
$103F
0
0
0
0
1
NOCOP
ROMON
EEON
CONFIG
Poznámky
MIKROPOČÍTAČE -MIKROPOČÍTAČ MRS32
2-8
Poznámky
2.2 PORTY
Port B - výstupní adresy A8 - A15 pro adresování vnější paměti
Port C - vstupně/výstupní
vstup = DO - D7 data z vnější paměti
výstup = A0 - A7 - nižší část adresy vnější paměti
2.2.1 Port A
•
zpřístupňuje systém časovačů. Umožňuje:
•
klasický čítač událostí (impulsní akumulátor)
•
trojnásobná funkce zachycení vstupu (input capture)- umožňuje díky časové
základny přesně zachytit okamžik změny logické hodnoty signálu a tuto změnu
signalizovat vyvoláním přerušení. Vstupy PA0 - PA2
•
pětinásobná funkce komparace výstupu (output
compare) - umožňuje pomocí
časové základny vyvolat změnu logické hodnoty na výstupech P3 - P7 v přesně
definovanou dobu.
IC
- output capture
OC
- output compare
PAI
- Pulse acumulator input
Poznámky
MIKROPOČÍTAČE -MIKROPOČÍTAČ MRS32
2-9
Poznámky
Speciální registry vztahující se k portu A
TIC1, TIC2, TIC3-
registry pro zachycení časového okamžiku změny vstupu
TOC1,.......TOC5-
registry výstupních komparátorů časovače
CFORC -
bezprostřední nastavení plánované změny výst. časovače
OCID -
registr výst. dat, které ovlivňuje porovnání TOC1
TCTL1, RTL2 -
řídicí registr časovače 1,2
TMSR1, 2 -
registr pro maskování hlavních přerušení z čas. 1,
registr pro maskování přerušení od vedlejších produktů časovače
TFLG1
registr příznaků přerušení od hlavního časovače
registr zachycení vedlejších produktů čas. 2
PACTL
řídicí registr pulzního akumulátoru
PACNT
čítací registr impulzního akumulátoru
Poznámky
MIKROPOČÍTAČE -MIKROPOČÍTAČ MRS32
Poznámky
Připojení klávesnice
Poznámky
2 - 10
MIKROPOČÍTAČE -MIKROPOČÍTAČ MRS32
2 - 11
Poznámky
2.2.2 Port D
1) Programovatelné číslicové vstupy/výstupy
2) Sériové komunikační kanály SCI a SPI
Sériový asynchronní SCI - PDO vstup, PD1 výstup + obvod MAX232 - kanál s normou RS
232C - propojení MRS32 s PC.
Rychlý synchronní sériový kanál SPI pro řízení periferních obvodů. PD2 - PD5: PD2,3 =
vstup/výstup - závisí na režimu master/slave
PD4 vysílač/přijímač synchronizačního hodinového sig. (master/slave)
PD5 - výběr mikrořadiče pro aktuální komunikaci
Poznámky
MIKROPOČÍTAČE -MIKROPOČÍTAČ MRS32
2 - 12
Poznámky
2.2.3 PORT E
Analogové nebo číslicové vstupy.
Analogové vstupy - osmikanálové, osmibitové A/D s postupnou aproximací, výsledky se
ukládají do čtyř výsledkových registrů ADR1 až ADR4, vstup 0 - 5 V.
Číslicové vstupy - celá brána E, dá se číst z registru PORT E
2.3 Instrukční soubor
2.3.1 Skupiny instrukcí
•
Instrukce pro aritmetické operace
•
Instrukce pro logické operace
•
Řídící instrukce
•
Instrukce pro práci se zásobníkem
•
Instrukce pro testování střadače
•
Instrukce pro větvení programu
•
Instrukce pro nastavování počátečního stavu
•
Instrukce pro přesuny
Tvar instrukce - instrukční slovo
OPERAČNÍ KÓD
Poznámky
ZPŮSOB ADRES.
POLE ADRESY
MIKROPOČÍTAČE -MIKROPOČÍTAČ MRS32
2 - 13
Poznámky
Operační kód
•
osmibitový
•
u některých 16 bitový (rozšířený o prefix), instrukce pro práci s index. reg. IY
Délka instrukčního slova 1 - 4 byty.
2.4 REGISTRY 68HC11
Poznámky
MIKROPOČÍTAČE -MIKROPOČÍTAČ MRS32
2 - 14
Poznámky
2.5 Příznakový registr CCR
7
S
1
0
X
H
1
I
U
N
1
Z
U
V
U
C
U
U
Po resetu
•
C
přenos
•
V
přetečení
•
Z
nula
•
N
záporný výsledek
•
I
maskování maskovatelných
nemaskovatelné přerušení
•
H
•
X
povolení nemaskovatelného přerušení; 0 = enable. Je-li X = 0, je možno
změnit na 1 jen RESETEM
•
S
přerušení;
0
=
enable
nemá
vliv
na
pomocný přenos
blokování instrukce STOP; 1 = STOP není funkční
N: předává se z bitu 7 střadače; je-li bit 7 střadač roven 1, je možno považovat výsledek za
záporný (N=1); je-li 0 je kladný (N=0)
Z: předává se ze střadače; je-li obsah střadače nulový (Z=1), není-li nulový (Z=0)
H: předává se ze 3. bitu střadače; nelze jej využívat přímo k testování; používá jej instrukce
DAA
C: C=1, vznikne-li přenos z nejvyššího bitu; nebo k výpůjčce při odečítání jinak C=0
Poznámky
MIKROPOČÍTAČE -MIKROPOČÍTAČ MRS32
2 - 15
Poznámky
2.6 Způsoby adresování
2.6.1 Implicitní (adresování akumulátoru)
Zde je operand v instrukci určen implicitně, používá se při adresování registrů (IX, IY, SP);
adresování akumulátoru označuje akumulátor A nebo B popř. D.
Příklad:
ABA
<A>+<B>
CLRA
0
DES
< SP > -1
SP
INX
< IX > +1
IX
A
 A
2.6.2 Bezprostřední adresování (Immediate)
Operand je přímo vložen do instrukčního slova a to do bytu za operačním kódem
Poznámky
MIKROPOČÍTAČE -MIKROPOČÍTAČ MRS32
2 - 16
Poznámky
2.6.3 Přímé a přímé rozšířené adresování
Operand je v paměti na adrese, která je zapsaná v adresové části instrukčního slova.
Instrukční slovo 2 nebo 3 byty
256 adres
65536 adres - přímé rozšířené adresování
operační kód $ FE
$ 12
LDX $ 1275
Poznámky
$ 75
MIKROPOČÍTAČE -MIKROPOČÍTAČ MRS32
2 - 17
Poznámky
2.6.4 Indexové adresování
Indukční slovo - 2 (3) byty, poslední byte obsahuje indexovou část. Tato se přičte k registru
indexovému, ve kterém je „bázová adresa“. Výsledek je adresa operandu. Obsah
indexového se nemění.
2.6.5 Relativní adresování
Pro relativní podmíněné a nepodmíněné skoky - dvoubytové instrukce - druhý byte je
dvojkové číslo v doplňkovém kódu - tedy skok v rozsahu + 127 až - 128. Hodnota 2. bytu
se přičítá k čítači instrukcí PC.
2.7 SYSTÉM PŘERUŠENÍ U 68HC11
Přerušovací systém umožňuje, aby CPU mikrořadiče odpovídal na žádosti strany V/V
zařízení a nečekal v cyklu na ukončení činnosti v těchto zařízeních.
Poznámky
MIKROPOČÍTAČE -MIKROPOČÍTAČ MRS32
2 - 18
Poznámky
2.7.1 Postup při obsluze přerušení:
a) Požadavkem na přerušení se ohlásí některý z periferních obvodů mikrořadiče
(vnějších nebo vnitřních)
b) CPU akceptuje požadavek na přerušení (jestliže je přerušení povoleno) na konci
právě vykonávané instrukce a současně se znemožní přijetí další žádosti o přerušení
(při nemaskovatelném přerušení XIRQ nastaví bity podmínkového registru X = 1 a I
= 1 a u ostatních přerušení pak pouze I = 1).
c) Přemístění všech obsahu registrů (s vyjímkou SP) do zásobníku.
d) CPU přejde na provádění obslužného programu přerušení od adresy, která je určena
příslušným vektorem přerušení
e) Po provedení programu obsluhy přerušení (po instrukci RTI - Return from
Interrupt) se obnoví původní obsah pracovních registrů, tj. opačná operace
vzhledem k bodu c.
Obrázek Přerušení přes vektor přerušení
Poznámky
MIKROPOČÍTAČE -MIKROPOČÍTAČ MRS32
Poznámky
Obrázek Přerušení přes pseudo vektor přerušení
Poznámky
2 - 19
MIKROPOČÍTAČE -MIKROPOČÍTAČ MRS32
2 - 20
Poznámky
68HC11 má tři vnější přerušovací vstupy (Všechny jsou aktivní v nízké úrovni.):
•
reset
•
maskovatelné přerušení (IRQ)
•
nemaskovatelné přerušení (XIRQ)
2.7.2 Maskovatelné přerušení (IRQ)
•
proběhnou body a) až c) (9 cyklů).
•
bod d) -adresa programu obsluhy přerušení se získává z paměťových míst $FFF2 a
$FFF3
•
maska přerušení se nastaví na 1. Nastavením masky je definován postup v případě
více současně vydaných požadavků na přerušení. Pokud je potřebné umožnit
vnoření dalšího přerušení do obslužného programu, musí se maska přerušení
instrukcí CLI na začátku obslužného programu přerušení vynulovat. Jestliže vnoření
není požadováno, maska se nenuluje.
•
v šestnáctém cyklu se získává první instrukce obsluhy přerušení.
•
Provedením instrukce RTI se ze zásobníku obnoví všechny
registry. Před
přerušením byla maska přerušení ve stavu 0, po provedení instrukce RTI je přerušení
znovu povoleno.
Poznámky
MIKROPOČÍTAČE -MIKROPOČÍTAČ MRS32
2 - 21
Poznámky
2.7.3 Nemaskovatelné přerušení (XIRQ)
•
Nemaskované přerušení se automaticky zamaskuje pouze po resetu maskovacím
bitem X v CCR
•
Po povolení přerušení ze vstupu XIRQ v průběhu vykonávání programu nelze již
tento maskovací bit vrátit zpět.
•
Na XIRQ připojujeme obvykle obvody, které generují přerušení s nejvyšší prioritou.
•
Nastaví se bitové masky X i I na 1 a získává se vektor přerušení z paměťových míst
$FFF4 a $FFF5.
2.7.4 Reset
•
Pro nastavení mikrořadiče do počátečního stavu .
•
Přivedením nízké úrovně na vstup RESET.
•
CPU nastaví masky přerušení (I a X) a získává vektor přerušení z paměťových míst
$FFFE a $FFFF.
•
Reset mikrořadiče se může uskutečnit také interně signálem COP (nazývaným též
Watch dog).
Poznámky
MIKROPOČÍTAČE -MIKROPOČÍTAČ MRS32
2 - 22
Poznámky
2.7.5 Softwarové přerušení
•
Provede se instrukcí SWI.
•
Inicializuje se postup jako u normálního přerušení.
•
Vektor přerušení se získává z paměťových míst $FFF6 a $FFF7.
•
Toto přerušení nelze zamaskovat a při provádění instrukce SW1 se nastavují masky
přerušení (I a X).
•
Mikrořadič má možnost ještě patnácti interních přerušení od vnitřních periferií.
Princip provedení je stejný jako IRQ s vyjímkou přerušovacích vektorů, jež jsou po
každé přerušení navzájem odlišné.
Jestliže mikrořadič při provádění programu narazí na neznámý operační kód, vznikne další
druh přerušení, zvaný ILLOP (Illegal Operational Code). Vektor přerušení se získává
z paměťových míst $FFF8 a $FFF9. Provedení přerušení je stejné jako u přerušení SWI.
Přerušovací vektory jsou všechny umístěny před koncem adresovatelného prostoru. Tento
prostor je zpravidla vyplněn pamětí ROM (EPROM) a vektory přerušení představují
standardní adresy, na kterých se nachází opět ve většině případů standardizované adresy,
směřující do oblasti vnitřní paměti RWM. Na uvedená paměťová místa lze pak umístit
nepodmíněné skoky (JMP), které směřují na počátky příslušných programů pro obsluhu
jednotlivých typů přerušení.
Přehled všech přerušení je dán tabulkou. Priorita uvedených přerušení je dána pořadím jejich
uvedením v tabulce. V případě jednoho, vybraného ze skupiny maskovatelných přerušení,
lze tuto prioritu převést na první místo v této skupině naprogramováním registru HPRIQ.
Poznámky
MIKROPOČÍTAČE -MIKROPOČÍTAČ MRS32
Poznámky
Příklad obsahu zásobníků:
Poznámky
2 - 23
MIKROPOČÍTAČE -MIKROPOČÍTAČ MRS32
2 - 24
Poznámky
Přehled a prioritní pořadí všech přerušení v mikrořadiči 68HC11:
Druh
přerušení
Resetovací
přerušení
Nemaskov.
přerušení
Maskovat.
přerušení
Poznámky
Typ
přerušení
Vektor
přerušení
Standardní
RESET
CLM
COP
ILLOP
SW1
$FFFE-F
$FFFC-D
$FFFA-B
$FFF8-9
$FFF6-7
obsah vektoru
$E000*,$0000**
$00FD
$00FA
$00F7
$00F4
XIRQ
IRQ
RTI
TIC1
TIC2
TIC3
TOC1
TOC2
TOC3
TOC4
TOC5
TOF
PAO
PAIE
SPI
SCI
$FFF4-5
$FFF2-3
$FFF0-1
$FFEE-F
$FFEC-D
$FFEA-B
$FFE8-9
$FFE6-7
$FFE4-5
$FFE2-3
$FFE0-1
$FFDE-F
$FFDC-D
$FFDA-B
$FFD8-9
$FFD6-7
$00F1
$00EE
$00EB
$00EE
$00E5
$00E2
$00DF
$00DC
$00D9
$00D6
$00D3
$00D0
$00CD
$00CA
$00C7
$00C4
REZERVA
REZERVA
$FFD4-5
$FFC0-CI
Maskování
přerušení
X***
I, STAI v PIOC
I, RTII v TMSK2
I, IC1I v TMSK1
I, IC2I v TMSK1
I, IC3I v TMSK1
I, OC1I v TMSK1
I, OC2I v TMSK1
I, OC3I v TMSK1
I, OC4I v TMSK1
I, OC5I v TMSK1
I, TOI v TMSK2
I, PAOVI v TMSK2
I, PAII v TMSK2
I, SPIE v SPCR
I,TIE-ILIE v
SCCR2
MIKROPOČÍTAČE -MIKROPOČÍTAČ MRS32
2 - 25
Poznámky
VYSVĚTLIVKY:
*
**
Monitor M-Buffalo
Zaváděcí režim
***
Po odmaskování nelze vrátit
až do nového resetu
CLM
COP
Monitorování hod. signálu
Hlídání správného
vykonávání programu Watch dog
Neznámý operační kód
ILLOP
SWI
XIRQ
IRQ
STAI
v PIOC
Poznámky
RTI
TIC1-3
Přerušení od reálného času
Přerušení od funkce zachycení
logické změny stavu signálu na
vstupních přívodech brány A
TOC1-5 Přerušení od funkce porovnání
výstupu časovače následné
změny logické úrovně na
výstupech brány
TOF
Přetečení časovače
PAO
Přetečení impulsního
akumulátoru
PAIE
Detekce aktivní hrany signálu
na vstupu impulsního
akumulátoru
Programově vyvolané
SPI
Přerušení od periferního
přerušení
sériového kanálu
Nemaskovatelné vnější
SCI
Přerušení od komunikačního
přerušení
sériového kanálu
Maskovatelné vnější
I
Značí, že přerušení je
přerušení
maskováno nastavením bitu I
v registru podmínkového kódu
CCR
Značí možnost zablokování přerušení bitem sta v registru PIOC
MIKROPOČÍTAČE -MOTOROLA 68HC08
Poznámky
3
MOTOROLA 68HC08
Poznámky
3-1
MIKROPOČÍTAČE -MOTOROLA 68HC08
Poznámky
Poznámky
3-2
MIKROPOČÍTAČE -MOTOROLA 68HC08
Poznámky
Poznámky
3-3
MIKROPOČÍTAČE -MOTOROLA 68HC08
Poznámky
Poznámky
3-4
MIKROPOČÍTAČE -MOTOROLA 68HC08
Poznámky
Centrální procesní jednotka procesní jednotka (CPU)
Základní vlastnosti:
•
Taktovací frekvence 8MHz při 5V napájení a 4MHz při 3V napájení
•
16 bitový ukazatel zásobníku s novými instrukcemi pro operace se
•
zásobníkem
•
16 bitový indexový registr
•
78 nových instrukcí oproti M6805
•
Přesuny z paměti do paměti bez použití akumulátorů
•
Rychlejší 8 bitové násobení a nová instrukce pro dělení
•
Pokročilé řízení cyklů
•
16 adresovacích režimů
•
Společný paměťový prostor pro program a data o velikosti 64KB
•
Plně statická architektura s podporou sníženého napájecího napětí
Poznámky
3-5
MIKROPOČÍTAČE -MOTOROLA 68HC08
Poznámky
Poznámky
3-6
MIKROPOČÍTAČE -MOTOROLA 68HC08
3-7
Poznámky
Porovnání instrukčních sad
Typy instrukcí
HC 11
HC 08
Aritmetické
30
12
Logické
38
13
Přesun dat
22
10
Větvení programu
25
30
Nastavení poč. stavu
11
8
Práce se zásobníkem
8
6
Řízení CPU
5
3
Poznámky
MIKROPOČÍTAČE -MOTOROLA 68HC08
Poznámky
Poznámky
3-8
MIKROPOČÍTAČE -MOTOROLA 68HC08
3-9
Poznámky
Modul časovačů (TIM)
Základní vlastnosti
•
Každý kanál časovače lze nezávisle naprogramovat do režimu zachycení vstupu,
porovnání výstupu nebo pulsně-šířkové modulace bez vyrovnávací paměti.
•
Jsou dostupné verze mikropočítačů se 2, 4 nebo 6 kanály.
•
Časovače mohou být v párech spojeny pro generování pulsněšířkové modulace.
•
Programovatelný dělič frekvence s možností výběru externího hodinového signálu.
•
Přetečení může přepnout kterýkoliv výstup časovače.
•
Zachycení vstupu může být aktivováno hranou nebo týlem impulsu.
•
Každý typ přerušení má svůj přerušovací vektor.
Poznámky
MIKROPOČÍTAČE -MOTOROLA 68HC08
Poznámky
Poznámky
3 - 10
MIKROPOČÍTAČE -MOTOROLA 68HC08
Poznámky
Poznámky
3 - 11
MIKROPOČÍTAČE -MOTOROLA 68HC08
Poznámky
Poznámky
3 - 12
MIKROPOČÍTAČE -MOTOROLA 68HC08
Poznámky
Poznámky
3 - 13
MIKROPOČÍTAČE -MOTOROLA 68HC08
3 - 14
Poznámky
Sériové periferní rozhraní (SPI)
Základní vlastnosti
• Používá se pro rychlou synchronní komunikaci na kratší
vzdálenosti
• V rámci plošného spoje (A/D, D/A, LCD moduly, EEPROM, …)
• Zařízení může pracovat v režimu master nebo slave
• Maximální bitová rychlost u master jednotky je rovna frekvenci
• sběrnice děleno 2
• Maximální bitová rychlost u slave jednotky je rovna frekvenci
• sběrnice
• Čtyři programovatelné rychlosti master jednotky
• Programovatelná polarita a fáze hodinového signálu
• Konec přenosu je signalizován přerušením
• Vyrovnávací paměť pro příjem i vysílání
Poznámky
MIKROPOČÍTAČE -MOTOROLA 68HC08
Poznámky
Sériové komunikační rozhraní (SCI)
Základní vlastnosti
•
Používá se pro přenos dat na větší vzdálenosti
•
Plně duplexní provoz
•
Dvojitá vyrovnávací paměť přijímače i vysílače
•
Programovatelná délka datového rámce 8 nebo 9 bitů
•
Pokročilá detekce chyb na sériové lince
•
Programovatelná přenosová rychlost – výběr z 32 rychlostí
•
Podpora hardwarového generování a kontroly parity
•
Zcela oddělený přijímač a vysílač
Poznámky
3 - 15
MIKROPOČÍTAČE -MOTOROLA 68HC08
3 - 16
Poznámky
SAE J1850 BDLC rozhraní J1850 BDLC rozhraní
Základní vlastnosti
•
Pokročilý multiplexní sběrnicový řadič
•
Typickou aplikací je automobilový průmysl
•
Přenosová rychlost 10,4kb/s, formát s proměnlivou šířkou pulzu (VPW)
•
Filtrování digitálního šumu
•
Detekce kolizí
•
Hardwarová podpora generování a kontroly CRC
•
Dva módy šetření elektrickou energií s automatickým probuzením v případě aktivity
na sběrnici
•
Podpora příjmu a vysílání bloků
•
Možnost práce se 4 násobnou přenosovou rychlostí (41,6kb/s)
Poznámky
MIKROPOČÍTAČE -MOTOROLA 68HC08
Poznámky
Poznámky
3 - 17
MIKROPOČÍTAČE -MOTOROLA 68HC08
Poznámky
CAN rozhraní
Základní vlastnosti
•
Sériový komunikační protokol původně vytvořený Robertem
•
Boschem pro použití v komunikačních sítích vozidel
•
Nyní se stává velmi populární i v oblastech průmyslové automatizace
•
Délka dat 0 – 8B
•
Programovatelná přenosová rychlost až do 1Mb/s
•
Dvojitá vyrovnávací paměť přijímače
•
Trojitá vyrovnávací paměť vysílače s vnitřním řazením podle priority
•
Programovatelný loopback mód s podporou diagnostiky
•
Nastavitelný hodinový kmitočet MSCAN
•
Možnost propojení s časovacím modulem (TIM) pro synchronizaci sítě
Poznámky
3 - 18
MIKROPOČÍTAČE -MOTOROLA 68HC08
Poznámky
Poznámky
3 - 19
MIKROPOČÍTAČE -MOTOROLA 68HC08
3 - 20
Poznámky
CAN - komunikační protokol
SOF - symbol začátku rámce
RTR -slouží k rozlišení zprávy zda jde o datovou zprávu (dominant) nebo
žádost o přístup ke sběrnici (recessive)
R0, R1 - řídicí pole (rezervováno)
ERC - CRC oddělovač
ACK - potvrzení
ACD - oddělovač
Řadič sběrnice II2C
Základní vlastnosti:
•
Sběrnice byla vyvinuta firmou Philips za účelem komunikace mezi jednotlivými
integrovanými obvody
•
Přenos probíhá pouze po dvou vodičích - data a hodinový signál
•
Existuje základní a rozšířená varianta I2C
•
Na sběrnici lze připojit 128 resp. 1024 (rozšířená varianta) obvodů s různou adresou
•
Frekvence hodin 100kHz, 400kHz, 1MHz (dle varianty)
•
Rychlost přenosu musí být přizpůsobena nejpomalejšímu zařízení na sběrnici
Poznámky
MIKROPOČÍTAČE -MOTOROLA 68HC08
Poznámky
Poznámky
3 - 21
MIKROPOČÍTAČE -MOTOROLA 68HC08
3 - 22
Poznámky
Modul generátoru hodinového kmitočtu s PLL
Základní vlastnosti
•
Obvod PLL umožňuje celočíselné násobení frekvence připojeného krystalu
•
Výhodou je možnost použití krystalů s nižší rezonanční frekvencí (např. krystal z
digitálních hodinek 32768kHz) čímž je dosaženo radikálního snížení vyzařovaného
rušení
•
Programovatelný napěťově řízený oscilátor
•
Automatické řízení šířky pásma
•
Vygenerování přerušení při vstupu nebo opuštění uzamčeného stavu
•
Konfigurační bit umožňuje nastavení běhu oscilátoru i v režimu stop
Poznámky
MIKROPOČÍTAČE -MOTOROLA 68HC08
Poznámky
Poznámky
3 - 23
MIKROPOČÍTAČE -MOTOROLA 68HC08
Poznámky
Poznámky
3 - 24
MIKROPOČÍTAČE -MOTOROLA 68HC08
3 - 25
Poznámky
Analogově/digitální převodník (ADC)
Základní vlastnosti
•
Lineární postupná aproximace
•
Rozlišení převodníku 8, 10 nebo 12bitů (dle typu mikropočítače)
•
Jednorázové nebo kontinuální převody
•
Konec převodu je signalizován stavovým bitem nebo přerušením
•
Nastavitelná frekvence převodníku
•
Doba převodu 17ms (~59000 převodů za sekundu)
•
Analogový multiplexor umožňuje převádění více analogových kanálů jedním
převodníkem
Zabezpečovací a ochranné funkce
Hardwarové
•
Monitorování hodinové frekvence
•
Monitorování napájecího napětí
Softwarové
•
Watchdog
•
Kontrola operačních kódů
Poznámky
MIKROPOČÍTAČE -MOTOROLA 68HC08
3 - 26
Poznámky
Režimy se sníženou spotřebou
Režim Wait
Aktivace pomocí instrukce WAIT
Funkce:
•
zastavení hodin CPU
•
časování sběrnice stále běží
•
jednotlivé periferní obvody mohou být vypnuty pro další úsporu elektrické energie.
Z režimu Wait lze vystoupit resetem, externím nebo interním přerušením. Typicky 50%
úspora energie oproti režimu Run
Režim Stop
Aktivace pomocí instrukce STOP
Funkce:
•
zastavení hodin CPU
•
mohou být zastaveny i hodiny sběrnice
Z režimu STOP lze vystoupit pouze resetem nebo externím přerušením
Poznámky
MIKROPOČÍTAČE -MOTOROLA 68HC08
3 - 27
Poznámky
Typická spotřeba 1 - 3mA.
Programování vnitřní FLASH paměti (1/2)
•
Podpora programování přímo v cílové aplikaci
•
Mikropočítač je nutné přepnout do monitorovacího režimu
•
Propojení mikropočítače s vývojovým systémem zajišťuje In-Systém programátor
Programování vnitřní FLASH paměti (2/2)
Poznámky
MIKROPOČÍTAČE -MOTOROLA 68HC08
Poznámky
Poznámky
3 - 28
MIKROPOČÍTAČE -MOTOROLA 68HC08
Poznámky
Poznámky
3 - 29
MIKROPOČÍTAČE -MOTOROLA 68HC08
Poznámky
Poznámky
3 - 30
MIKROPOČÍTAČE -MOTOROLA 68HC08
Poznámky
Poznámky
3 - 31
MIKROPOČÍTAČE -MODUL DISPLEJE LTN 211
4-1
Poznámky
4
MODUL DISPLEJE LTN 211
•
LTN 211 je modul dvouřádkového bodového displeje s kapalnými krystaly
•
obsahuje zabudovaný mikrořadič HD 4478 a tak tvoří inteligentní zobrazovací
jednotku. Součástí mikrořadiče je paměť RAM s kapacitou 40 zobrazovaných znaků
pro každý řádek a generátor znaků se 160 pevnými znaky v paměti ROM a osmi
uživatelem programovatelnými znaky v paměti RAM.
•
Spolupracuje se 4-bitovými i 8-bitovými procesory
•
Paměť zobrazovaných dat .......................80 znaků
•
Generátor znaků
o ROM..................160 znaků 5x7 bodů
o RAM..................
8 znaků 5x7 bodů
•
Paměť zobrazovaných znaků i uživatelem definovaných znaků lze přečíst
nadřazeným procesorem
•
Široký instrukční soubor, např. funkce:
o Smazání displeje, funkce home, zapnutí/vypnutí displeje,
o Zapnutí/vypnutí kurzoru, blikání kurzoru, posun kurzoru/textu
•
Vnitřní automatický reset po připojení napájecího napětí.
•
Modul displeje je k mikroprocesoru 68 HC11 připojen datovou sběrnicí DO - D7 a
řídicími signály E, RS a R/W. Výběrový signál E je generován adresovým
dekodérem: signál výběru registru RS přísluší nejnižšímu bitu adresy a signál
zápis/čtení R/W je dostupný přímo z mikroprocesoru.
•
Displej je umístěn na adrese $8000 (řídicí registr) a $8001 (datový registr)
Poznámky
MIKROPOČÍTAČE -MODUL DISPLEJE LTN 211
4-2
Poznámky
4.1 Inicializace displeje
Displej se automaticky inicializuje po připojení napájecího napětí vnitřním obvodem pro
reset. Po resetu se provedou následující instrukce:
•
Smazání displeje
•
Nastavení konfigurace:
o DL - 1.....šířka datové sběrnice 8 bitů
o D - 0.....vypnutý displej
o C - 0.....vypnutý kurzor
o B - 0.....vypnuté blikání
o I/D - 1.....automatická inkrementace adresy při zápisu
o S - 0.....odsouvání textu z naplněného displeje vypnuto
•
Naplnění paměti pro zobrazované znaky hodnotou $00
Po dobu automatické inicializace displeje je nastaven příznak vnitřního zpracování (BF = 1).
Doba inicializace je asi 10 ms od dosažení úrovně napájecího napětí 4,5 V.
4.2 Instrukce pro ovládání displeje
Nadřazený procesor může přímo ovládat pouze dva registry mikrořadiče displeje (tj.
instrukční registr IR a datový registr DR) a to pouze v době, kdy mikrořadič displeje není
zaměstnán vnitřním zpracováním informace. Před každým započetím vnitřní operace
mikrořadiče je do těchto registrů zapsána stavová informace. Operace mikrořadiče jsou
ovládány signály DO-D7, RS a RW. Tyto signály jsou nadále nazývány instrukcemi.
Poznámky
MIKROPOČÍTAČE -MODUL DISPLEJE LTN 211
4-3
Poznámky
4.3 Instrukce lze rozdělit na:
•
Instrukce pro nastavení pracovního režimu
•
Instrukce pro nastavení adresy interní paměti RWM
•
Instrukce pro přenos zobrazovaných dat do/z interní paměti RWM
•
Ostatní instrukce
Tab.
Instrukční soubor displeje LTN 211
INSTRUKCE\KÓD
RS
D7
RW
Smazání displeje
0
0
0
Kurzor home
0
0
0
Vstupní režim
0
0
0
Režim displeje
0
0
0
Posun kurzoru/displ.
0
0
0
Funkční soubor
0
0
0
Nastav adr v pam. gen. zn.
0
0
0
Nastavení adresy v paměti
0
0
1
textu:
Čtení BF a adresy
0
1
BF
Zápis dat
1
0
d
Čtení dat
1
1
d
Kde: I/D = 1
S =1
D =1
C =1
B =1
S/C=1
R/L=1
DL =1
BF =1
inkrementace a. č.
odsouvání textu
displej zapnutý
kurzor zapnutý
znak na pozici kurzoru bliká
posun textu
posun doprava
8-bit.instrukce
provádí se interní operace
D6
D5
D4
D3
D2
D1
D0
čas(µs)
0
0
0
0
0
0
1
a
0
0
0
0
0
1
a
a
0
0
0
0
1
DL
a
a
0
0
0
1
S/C
1
a
a
0
0
1
D
R/L
0
a
a
0
1
I/D
C
*
*
a
a
1
*
S
B
*
*
a
a
82-1640
40-1600
40
40
40
40
40
40
a
d
d
a
d
d
a
d
d
a
d
d
a
d
d
a
d
d
a
d
d
1
40
40
I/D = 0 dekrementace a. č.
S = 0 text stojí
D = 0 displej vypnutý
C = 0 kurzor vypnutý
B = 0 znak na pozici kurzoru nebliká
S/C= 0 posun kurzoru
R/L= 0 posun doleva
DL =0 4.bit. instrukce
BF =0 interní operace skončily
DŮLEŽITÉ POZNÁMKY:
•
Před každým vysláním instrukce pro displej je třeba se nejprve přesvědčit, že není
nastaven příznak obsazení (BF = 0). Pokud se tato kontrola neprovádí, musí být
Poznámky
MIKROPOČÍTAČE -MODUL DISPLEJE LTN 211
4-4
Poznámky
doba mezi dvěma následujícími po sobě zpracovávanými instrukcemi mnohem delší
než je doba vykonávání instrukce (viz poslední sloupec v tabulce).
•
Po provedení instrukcí zápisu a čtení do/z interní paměti RWM se automaticky
zvyšuje či snižuje stav adresového čítače. Protože se tento posun provádí až po
vynulování příznaku obsazení je v tomto případě třeba vyčkat ještě na dokončení
této adresové operace tj. asi 6 µs.
•
Instrukce se zadávají zápisem hodnoty v poli D0 - D7 na adresu $8000, data
zápisem na adresu $8001. Ćtecí instrukce se provádějí čtením příslušné adresy.
Signály RS a R/W se generují hardwarově.
4.4 Popis jednotlivých instrukcí
4.4.1 Smazání displeje
Kód:
R R
D
D
SW
7
0
0 0
0 0 0 0 0 0 0 0 1
Náplní paměť pro zobrazovaný text kódem mezery ($20). Vynuluje adresový čítač, tj.
nastaví kurzor na pozici prvního znaku na prvním řádku. Nastaví režim inkrementace
adresového čítače (1/D = 1), režim posunu textu (S) se nemění.
4.4.2 Kurzor na počátek
R R
D
D
S W
7
0
0
0 0 0 0 0 1 *
Kód: 0 0
Poznámky
MIKROPOČÍTAČE -MODUL DISPLEJE LTN 211
4-5
Poznámky
Vynuluje adresový čítač, tj. nastaví kurzor na pozici prvního znaku na prvním řádku. Data
v paměti zobrazovaného textu zůstávají nezměněna.
4.4.3 Vstupní režim
R R
D
D
S W
7
0
0
0 0 0 0 1 I/D S
Kód: 0 0
Definuje chování displeje při zápisu a čtení dat.
•
I/D - Při zápisu nebo čtení dat se zvyšuje (I/D = 1) nebo snižuje (I/D = 0) adresa
v adresovém čítači o 1. Kurzor se přitom pohybuje doprava (I/D = 1) nebo doleva
(I/D = 0). K nastavené změně adresy dochází i při zápisu či čtení do/z paměti
generátoru znaků.
•
S
-
Odsouvání textu. Při S = 1 se zobrazovaný text při zápisu do paměti RAM
posouvá po displeji. Vypadá to jako by kurzor stál na místě a text se odsouval
doprava nebo doleva v závislosti na I/D. Při čtení z paměti se text nepohybuje.
4.4.4 Režim displeje
Kód:
R R
D
D
S W
7
0
0 0
0
0 0 0 0 D C B
Nastavuje zobrazovací režim, zapíná a vypíná displej.
Poznámky
MIKROPOČÍTAČE -MODUL DISPLEJE LTN 211
4-6
Poznámky
D - Zapnutí a vypnutí displeje. Pro D = 1 je displej zapnut. Po vypnutí displeje (D = 0)
zůstávají zobrazovaná data v paměti a jsou opět zobrazena ihned po zapnutí displeje(D= 1).
C - Zobrazení kurzoru. Kurzor je zobrazen jako podtržítko na osmém řádku matice znaku.
Pozice kurzoru odpovídá obsahu adresového čítače.
B - Blikání znaku. Je-li B = 1 znak na pozici kurzoru bliká. Blikání je provedeno záměnou
zobrazovaného znaku a plného obdélníčku (znak FF hex, viz. Tabulku v příloze D) v taktu
2.5 Hz.
4.4.5 Posun kurzoru nebo textu
R R
D
D
S W
7
0
0
0 0 1 S/C R/L * *
Kód: 0 0
•
libovolná hodnota .
Posunuje kurzor (S/C = 0) nebo text (S/C = 1) doprava (R/L = 1) nebo do leva (R/L = 0)
bez zápisu nebo čtení zobrazovaných dat. Funkce je použitelná pro opravy a prohlížení
zobrazovaného textu. Po přechodu za 40 znak prvního řádku kurzor přejde na řádek druhý.
Při posunu textu se oosunují oba řádky zároveň. Text se pohybuje pouze vodorovně, tzn.,
že text na druhém řádku se nemůže posunout na řádek první. Při posunu textu se nemění
obsah adresového čítače.
4.4.6 Funkční soubor
R R
Poznámky
D
D
MIKROPOČÍTAČE -MODUL DISPLEJE LTN 211
4-7
Poznámky
S W
Kód: 0
•
0
7
0
0 0 1 DL 1 0 * *
libovolná hodnota .
Nastavení délky instrukcí. Pro osmibitové instrukce je DL = 1, pro čtyřbitové je DL = 0.
Upozornění:
Pro správnou součinnost modulu displeje s mikroprocesorem 68HC11 je třeba dodržet
nastavení DL = 1.
4.4.7 Nastavení adresy v paměti RWM u generátoru znaků
R R
D
D
S W
7
0
Kód: 0
0
0 1 a a a a a a
←
Vyšší bity adresy
Nastaví binární adresu „aaaaaa“ do adresového čítače. Po této instrukci je možné zapisovat
nebo číst data definice uživatelsky programovaných znaků.
4.4.8 Nastavení adresy v paměti zobrazovaného textu
R R
D
D
S W
7
0
Kód: 0
0
0 1 a a a a a a
← Vyšší bity adresy
Poznámky
MIKROPOČÍTAČE -MODUL DISPLEJE LTN 211
4-8
Poznámky
Nastavení binární adresy „aaaaaaa“ do adresového čítače. Slouží k nastavení místa kam se
mají zapisovat nebo odkud se mají číst zobrazovaná data. Prvnímu řádku odpovídají
hexadecimálně adresy $00 - $27, druhému $40 - $67.
4.4.9 Čtení příznaku obsazení a adresy
R R
D
D
S W
7
0
Kód: 0
0
BF a a a a a a a
← Vyšší bity adresy
Přečtěte aktuální stav mikrořadiče displeje. Hodnota příznaku obsazení BF ukazuje stav
mikrořadiče. Je-li BF = 1 mikrořadič provádí interní operace a nemůže přijmout žádnou
instrukci (kromě opětovného čtení řídicího registru). Hodnotu BF je třeba kontrolovat před
každou novou instrukcí pro displej a případně vyčkat na dokončení provedení předcházející
instrukce. Současně s příznakem obsazení je přečten také aktuální stav adresového čítače
(bity „aaaaaaa“).
4.4.10 Zápis dat do paměti textu a generátoru znaků
R R
D
D
S W
7
0
Kód: 1
0
d d d d d d d d
← Vyšší bity dat
Zapíše data
„ddddddd“ na adresu, která se právě nachází v adresovém čítači. Adresa
v čítači závisí na provedení předcházejících instrukcí (nastavení adresy), posun kurzoru,
Poznámky
MIKROPOČÍTAČE -MODUL DISPLEJE LTN 211
4-9
Poznámky
příp. zápis nebo čtení paměti). Po zápisu se automaticky zvýší nebo sníží adresa
v adresovém čítači o 1 a případně dojde k posunu zobrazeného textu v závislosti na
nastaveném vstupním režimu displeje.
4.4.11 Čtení dat z paměti textu nebo generátoru znaků
R R
D
D
S W
7
0
Kód: 1
1
d d d d d d d d
← Vyšší bity dat
Přečtěte data „ddddddd“ z paměti zobrazovaného textu nebo generátoru znaků. Před
čtením dat je třeba nastavit adresu v adresovém čítači instrukcemi nastavení adresy příp.
posun kurzoru. Bez tohoto nastavení jsou první přečtená data chybná. Při čtení bloku
paměti stačí nastavit adresu bloku před prvním čtením. Adresa v čítači se po každém čtení
automaticky zvyšuje či snižuje (podle nastaveného vstupního režimu) a čtená data jsou
platná.
4.5 Příklady komunikace mezi 68HC11 a displejem:
•
•
Zadání instrukce návrat na počátek (home)
1daa
#$02
uložení hodnoty $02 - 00000010 bin do akumulátoru A
staa
$8000
zapsání této hodnoty do řídicího registru displeje
Přečtení BF a adresy v čítači
1 daa $8000
•
přečtení obsahu řídicího registru
Přečtení dat z 2., pozice na prvním řádku
1daa
$#81
nastavení adresy #$01 tj. 2. Pozice prvního
staa
#$8000
řádku
Poznámky
MIKROPOČÍTAČE -MODUL DISPLEJE LTN 211
4 - 10
Poznámky
loop
1daa
#$8000
načtení BF a adresy
bita
#$80
test BF
bne
loop
je-li BF = 1, čekej
1daa
#$8001
přečtení dat.
4.6 Paměťový prostor displeje
Pro uložení kódu zobrazovaných znaků je celkem k dispozici 2x40 paměťových míst,
z nichž může být vždy jen 2x16 znaků průběžně zobrazeno. Toto zobrazovací okénko lze
přesouvat změnou vnitřní adresy nebo posunem kurzoru. Běžně zobrazitelné znaky jsou
v této paměti reprezentovány svými ekvivalenty v kódu ASCII.
4.6.1 Mapa paměťového prostoru pro uložení zobrazovaných kódů:
1
2
3
4
5
............
pozice na displ.
1. řádek 00 01 02 03 04 ............ 25 26 27 adresa v paměti
2. řádek 40 41 42 43 44 ............ 65 66 67 (hexadecimálně)
4.6.2 Generátor znaků
Znakový generátor vytváří obrazce 5x7 bodů odpovídající kódům znaků. Kódy $00 až $07
osmi uživatelsky programovatelným znakům. Vztah mezi kódem programovatelného znaku
jeho uložením v paměti generátoru znaků ukazuje tab. Naprogramování jednoho znaku
sestává z nastavení inkrementálního vstupního režimu nastavení počáteční adresy umístění
znaku a zapsání osmi hodnot do datového registru (inkrementace adresového čítače se děje
automaticky).
Poznámky
MIKROPOČÍTAČE -MODUL DISPLEJE LTN 211
Poznámky
Poznámky
4 - 11
MIKROPOČÍTAČE -MODUL DISPLEJE LTN 211
4 - 12
Poznámky
4.7 Popis ovladače displeje
Ovladač displeje je tvořen souborem podprogramů, které vykonávají nejběžnější příkazové
sekvence, jako je inicializace, smazání, zobrazení daného znaku nebo textu na displeji apod.
Ovladač se standardně ukládá od adresy $D000, ale je možné jej uložit na libovolné místo
v paměti přepsáním hodnoty DSTART.
4.7.1 Podprogramy ovladače:
- dinit - inicializace displeje
Parametry :
žádné
Návratové hodnoty:
žádné
Podprogram provede softwarovou inicializaci displeje, nastaví jeho režim na D/I = 1, S = 0,
D = 1, C = 0, B = 0, naprogramuje znaky ý (kód $01), ř(kód $02), č(kód $03), zobrazí
inicializační text:
Mikroprocesorový
řadič MS11 Mesit
a vyčká dokončení všech vnitřních operací displeje (včetně inkrementace adresového čítače.
- dels - smazání displeje
Parametry:
žádné
Návratové hodnoty:
žádné
Poznámky
MIKROPOČÍTAČE -MODUL DISPLEJE LTN 211
4 - 13
Poznámky
Smaže displej, umístí kurzor na začátek 1. řádku, v adresovém čítači nastaví odpovídající
adresu (0000000) a vyčká dokončení vnitřních operací displeje.
- dline1- umístění kurzoru na začátek 1. řádku
Parametry:
žádné
Návratové hodnoty:
A - obsah adresového čítače ($00)
Umístí kurzor na začátek 1. Řádku bez změny v paměti zobrazeného textu. Nastaví
odpovídající adresu v adresovém čítači ($00) a vyčká dokončení vnitřních operací displeje.
V akumulátoru A vrátí obsah adresového čítače.
- dline2
- umístění kurzoru na začátek 2. řádku
Parametry:
žádné
Návratové hodnoty:
A - obsah adr. čítače ($40)
Umístí kurzor na začátek 2. Řádku bez změny v paměti zobrazovaného textu. Nastaví
odpovídající adresu v adresovém čítači ($40) a vyčká dokončení vnitřních operací displeje.
V akumulátoru A vrátí obsah adresového čítače.
- dprog
- naprogramování uživatelského znaku
Parametry:
A - kód znaku
IY - adresa definice znaku
Návratové hodnoty:
A - obsah adr. čítače před voláním podprogramu
Naprogramuje do paměti RWM generátoru znaků jeden znak a vyčká dokončení vnitřních
operací displeje. V akumulátoru A očekává kód pod kterým bude znak uložen (0-7) a
Poznámky
MIKROPOČÍTAČE -MODUL DISPLEJE LTN 211
4 - 14
Poznámky
v registru IY adresu začátku definice znaku. Definice znaku odpovídá obrazci znaku v tab.
Podprogram nezmění obsah adresového čítače, tedy ani pozici kurzoru. Obsah adresového
čítače vrátí v akumulátoru A.
- douta
-zobrazení znaku na pozici kurzoru
Parametry:
A - kód zobrazovaného znaku
Návratové hodnoty:
A - obsah adresového čítače
Zobrazí znak, jehož kód je v akumulátoru A na pozici kurzoru. Následný pohyb kurzoru
nebo textu závisí na vstupním režimu displeje. Vyčká dokončení vnitřních operací a
v akumulátoru A vrátí nový obsah adresového čítače.
- dtext - zobrazí řetězec znaků
Parametry:
A - kód znaku
IY - adresa textu
Návratové hodnoty:
A - obsah adresového čítače
Zobrazí řetězec znaků ukončený nulovým bajtem, jehož adresa je v registru IY. Toto
zobrazení provede na řádku, jehož kód je v akumulátoru A(DLN1),DLN2). Vyčká
dokončení vnitřních operací displeje a v akumulátoru A vrátí obsah adresového čítače.
Pokud chceme řetězec zobrazit jinde než od začátku řádku, je možné do akumulátoru A
místo konstanty DLN1 nebo DLN2 umístit instrukci nastavení adresy v paměti textu
s adresou odpovídající pozici, na které chceme text zobrazit.
Poznámky
MIKROPOČÍTAČE -MODUL DISPLEJE LTN 211
4 - 15
Poznámky
tertext - přečtení obsahu paměti textu a jeho zobrazení na terminálu
Parametry:
žádné
Návratové hodnoty:
žádné
Přečte obsah paměti textu a vyšle jej na terminál. Ve standardním provedení program
vyžaduje, aby byl spuštěn pod monitorem M-Buffalo, ve kterém je podprogram outa,
vysílající znak v akumulátoru A na terminál . Pokud program není spuštěn pod monitorem
M-Buffalo nebo potřebujeme znaky čtené z displeje zpracovat jiným způsobem, stačí
přepsat volání podprogramu outa voláním vlastního podprogramu. Přečtený znak je
předáván v akumulátoru A.
bftext - vyčkání na dokončení vnitřních operací
Parametry:
žádné
Návratové hodnoty:
A - obsah adresového čítače
Testuje příznak BF a čeká na jeho vynulování. V akumulátoru A vrátí obsah adresového
čítače.
dawait - čekání 6µs
Parametry:
žádné
Návratové hodnoty:
žádné
Čekací smyčka o délce 6µs. Využívá se k čekání na inkrementaci adresového čítače.
Poznámky
MIKROPOČÍTAČE -ASSEMBLER
5-1
Poznámky
5
ASSEMBLER
5.1 Programování 68HC11 v assembleru
•
překládá (transformuje) data nebo adresy z různých číselných soustav (např.
z desítkové, osmičkové, šestnáctkové) do dvojkové a překládá i znaky do
odpovídajících kódů ASCII,
•
umožňuje programátorovi, aby rezervoval a přiděloval paměť dočasné uchování dat,
•
umožňuje programátorovi uložit konstanty na určeném místě v paměti,
•
umožňuje programátorovi přiřadit symbolická jména paměťovým místům a vstupněvýstupním registrům,
•
umí vykonat některé aritmetické operace jako součást procesu překladu,
•
informuje programátora o formálních chybách v programu.
Zdrojové programy pro překladač (assembler) se zapisují v jazyce symbolických adres
(instrukcí), který se také v praxi nazývá assembler. Zdrojový jazyk připouští použití
množiny znaků, které assembler umí rozpoznat:
•
písmena anglické abecedy,
•
číslice 0 až 9,
•
znaky používané jako speciální prefixy:
Poznámky
o #
určuje bezprostřední adresování
o $
určuje šestnáctkové (hexadecimální) číslo
o %
určuje dvojkové číslo,
o ‘
(apostrof) určuje znak ASCII,
MIKROPOČÍTAČE -ASSEMBLER
5-2
Poznámky
•
speciální znaky aritmetických operací: +,-, *,/,
•
čtyři speciální znaky jako oddělovače:
o mezera
o horizontální posuv (TAB)
o CR(Carriage Return) - konec řádku,
o , (čárka),
•
komentář ve zdrojovém řádku, který může obsahovat znaky ASCII, ale nepřekládá
se.
Zdrojový program, který vytváříme textovým editorem, se skládá z posloupnosti zdrojových
řádků. Zdrojový řádek lze zpravidla rozdělit do čtyř polí např. v následujícím uspořádání:
START
LDAA
# $FF
Naplnění registru A jedničkami
Komentář
Operand
Mnemonické označení instrukce nebo direktiva
Návěští, může se v programu dále používat jako adresový operand
Protože návěští určuje adresu instrukce, není dovolena dvojznačnost ve specifikaci
hodnoty návěští, např.:
START
Poznámky
LDAA
# $ 45
ADDA
NUMBER
MIKROPOČÍTAČE -ASSEMBLER
5-3
Poznámky
START
STAA
PLACE
.
.
JMP
START
Je však dovoleno víckrát se na návěští odvolávat:
START
LDAA
$ 45
ADDA
NUMBER
STAA
PLACE
.
.
JMP
START
.
.
BNE
START
Symbolická jména PLACE a NUMBER musí být v programu definována pomocí direktiv.
Direktivy jsou pseudoinstrukce pro přiřazení symbolických názvů číselným hodnotám adres
nebo dat, jako je např. instrukce EQU uvedená dále.
Pole komentářů následuje za polem operandů a je oddělené jednou nebo více mezerami. I
celý zdrojový řádek může být komentářem, jestliže znak na první pozici je *. Znak * může
taky posloužit k naprogramování skoku zpět na stejnou instrukci např. místo:
LOOP
BRCLR
0, x
$ 45
LOOP
0, x
$ 45
*
můžeme napsat:
BRCLR
Text komentáře se netýká vytváření strojového kódu a asembler ho ve fázi překladu
ignoruje.
Poznámky
MIKROPOČÍTAČE -ASSEMBLER
5-4
Poznámky
5.2 Direktivy
Asembler umožňuje ve zdrojovém programu používat příkazy, které se vztahují na řízení
vlastního překladače (assembleru). Při překladu se těmto mnemonickým příkazům
nepřiřazují žádné strojové kódy. Takovéto instrukce se nazývají pseudo-instrukce nebo
direktivy.
Programy a data se mohou ukládat v různých oblastech paměti v závislosti na organizaci
adresovatelného prostoru. Direktiva ORG, která se zpravidla uvádí na začátku zdrojového
programu, slouží k určení počátečního místa programu a dat v paměti.
Příklad:
ORG
$ 100
Určení počáteční adresy cílového programu v paměti mikrořadiče
LDAA #$ 5
Naplnění akumulátoru A hodnotou #$ C5.
LDAA $ C5
Naplnění akumulátoru A hodnotou, která je uložena na adrese 00C5.
Poznámky
MIKROPOČÍTAČE -ASSEMBLER
5-5
Poznámky
Uložení těchto instrukcí do paměti je následující:
Adresa paměťového místa:
Obsah paměťového místa:
$0100
$86
$0101
$C5
$0102
$96
$0103
$C5
.
LDAA
#SC5
LDAA
$CS
.
Direktiva FCB (Form Constant Byte) má jeden nebo víc operandů oddělených
čárkami. Direktiva FCB přiděluje určeným pamě´tovým buňkám daný obsah specifikovaný
v poli operandu.
Příklad:
DATA
ORG
$200
FCB
$10,
$20,
$30,
16
Uložení do paměti:
Adresa paměťového místa
Poznámky
Obsah paměťového místa:
$0200
$10
$0201
$20
$0202
$30
MIKROPOČÍTAČE -ASSEMBLER
5-6
Poznámky
$0203
$10
V programu pak můžeme dále psát:
LDAA
DATA+1
Do A dej hodnotu z adresy $0201, tj. $20
LDX
#DATA
Do IX dej adresu $0200.
Direktiva FDB (Form Constant Double Byte) přiděluje určeným dvojicím paměťových
buněk 16-bitové hodnoty. Např.
TABLE
ORG
$300
FDB
$AFFF, %0000111111110000
Uložení do paměti:
Adresa paměťového místa
Obsah paměťového místa
$0300
$AF
$0301
$FF
$0302
$OF
$0303
$FO
.
.
V programu pak můžeme psát:
LDX
TABLE
Do IX ulož hodnotu z adres $0300 a $0301 tj.$AFFF
LDY
#TABLE
Do IY ulož adresu $0300.
Poznámky
MIKROPOČÍTAČE -ASSEMBLER
5-7
Poznámky
Direktiva FCC (Form Constant Character) vloží do paměťových buněk kódy určených
ekvivalentů ASCII. Například programový úsek:
.
TABLE
ORG
$400
FCC
‘TEXT’
.
Uložení do paměti:
Adresa paměťového místa
Obsah paměťového místa
$0400
$54
$0401
$45
$0402
$58
$0403
$54
.
.
Direktiva RMB (Reserve Memory Bite) se používá pro rezervaci místa
v paměti. Například:
DATA
ORG
$2000
RMB
10
.
Poznámky
MIKROPOČÍTAČE -ASSEMBLER
5-8
Poznámky
Na adrese $2000 se vyhradí 10 paměťových buněk, na které je možné se
odvolávat návěštím DATA, např.:
.
STA
DATA+5
Na adresu $2005 se uloží obsah akum. A
Direktiva EQU (Equate Symbol Value) slouží na přiřazení hodnoty symbolu, který se
může objevit v programu na více místech. Symbol, kterému se přiřazuje hodnota, se uvádí
v poli návěští. Například:
.
PORTC
EQU
$1003
Symbolu PORTC je přiřazena hodnota $1003, takže např. instrukce
.
LDAA
PORTC
naplní akumulátor A obsahem z paměťové buňky (portu C) na adrese $1003. Použitím
pseudoinstrukce EQU se zvyšuje srozumitelnost programu. Např. čekání, dokud na nultém
výstupu portu B nebude log. 1 naprogramujeme následovně:
REGPOLE
EQU
$1000
Počátek reg. pole
PORTB
EQU
$04
Registr PORTB v reg. poli
Vystup_PBO EQU
$01
.
Poznámky
Nultý výstup portu B
MIKROPOČÍTAČE -ASSEMBLER
5-9
Poznámky
LDY
REGPOLE
Do IY hodnota $1000
.
BRCLR PORTB, y Vystup_PBO * Čekací smyčka.
Nyní, když máme k dispozici soubor instrukcí mikrořadiče M68HC11 a známe použití
jednotlivých direktiv jazyka symbolických adres, můžeme přistoupit k napsání zdrojového
programu. Tento zdrojový program je vhodné psát v některém z textových editorů.
K tomuto účelu jsou nejvhodnější programátorské editory nejjednoduššího typu, jako je
např. AEDIT, Norton Editor, CREDIT, atd. Naopak zcela nevhodné pro tento účel jsou
dokumentační editory, jako např. T602, WordStar, Wordperfect atd, neboť nejen že psaní
programu neusnadňují, ale přidávají do textu některé řídicí znaky, které komplikují nebo
úplně znemožní jeho následný překlad asemblerem.
Příkazový řádek překladače
Program AS11.EXE, jehož příkazový řádek může být např. ve tvaru:
AS11 program.asm - 1 c s > program . lst
soubor protokolu o překladu (listing file)
Zdrojový soubor
Tento assembler také generuje soubor pod jménem „program.s19“. Je v něm tzv. záznam
typu S strojového kódu , v němž je uložen jak vlastní strojový kód, tak i pomocné kódy, jež
Poznámky
MIKROPOČÍTAČE -ASSEMBLER
5 - 10
Poznámky
umožňují určeným pomocným programem (např. monitorem M-Buffalo) načtení strojového
kódu do paměťového systému mikrořadiče .
5.3 ZÁZNAMY TYPU S
Záznamy typu S slouží k úspornému zakódování programů a datových souborů ve formě,
kterou je možno přenášet mezi výpočetními systémy, zobrazit na displeji a tisknout na
tiskárně. Jejich formát umožňuje snadné zviditelnění a editaci na osobním počítači. Tyto
záznamy slouží v podstatě ke stejným účelům, jako záznamy ve formátu INTELHEX,
známé všem programátorům mikroprocesorů od firmy Intel. Oba uvedené formáty jsou si
velmi podobné, avšak nejsou zcela shodné.
5.3.1 Obsah záznamů typu S
Z hlediska uživatele jsou záznamy typu S znakovými řetězci o několika položkách. Tyto
položky udávají typ záznamu, délku záznamu, adresu v paměti, zakódované instrukce/data a
kontrolní součet. Každý bajt binárního kódu je zakódován do dvouznakového
hexadecimálního čísla. V prvním znaku tohoto čísla jsou zakódovány čtyři řádově vyšší bity
a ve druhém znaku čtyři řádově nižší bity kódovaného bajtu.
Záznam typu S zahrnuje 5 následujících položek:
TYP DÉLKA ZÁZNAMU
ADRESA
KÓD/DATA
KONTROLNÍ SOUČET
kde položky jsou vytvořeny následovně:
POLOŽKA
Typ
Poznámky
POČET ZNAKŮ
2
OBSAH
Typ záznamu - SO, S1, atd
MIKROPOČÍTAČE -ASSEMBLER
5 - 11
Poznámky
Délka záznamu
2
Počet znakových párů v záznamu
s výjimkou typu a délky záznamu.
Adresa
4,6 nebo 8
Dvoubajtová, tříbajtová nebo čtyřbajtová
adresa, od které se data přenášená v
následující položce ukládají do paměti.
Kód/data
0 až 2n
Spustitelný kód nebo data pro uložení
do paměti v počtu 0 až 2n znaků, kde n je počet bajtů přenášené informace Po dosažení
kompatibility s dálnopisem mohou některé programy omezovat počet bajtů přenášených
v jednom záznamu typu S na 28 (tj. 56 tisknutelných znaků na záznam).
Kontrolní součet 2
Řádově nejnižší platný bajt z jednotkového
doplňku
dvojicemi
položky:
součtu
hodnot
reprezentovaných
znaků a zahrnujícího následující
délkuzáznamu,
adresu
a
zakódované instrukce/data.
Každý záznam lze zakončit pomocí znaků CR (návrat vozíku), LF (posun válce), NULL
(prázdný znak). Navíc může mít záznam typu S inicializační položku pro uložení dalších dat,
jako jsou např. čísla řádků, generovaná některými systémy reálného času.
Věrnost přenosu je zajištěna údajem o délce záznamu (počet bajtů) a kontrolním součtem.
Poznámky
MIKROPOČÍTAČE -ASSEMBLER
5 - 12
Poznámky
5.3.2 Druhy záznamů typu S
Je definováno celkem osm druhů záznamů typu S, které jsou přizpůsobeny různým
potřebám kódování, přenosu a dekódování dat. Různé podpůrné programy mikroprocesorů
firmy Motorola )jako jsou křížové překladače - assemblery, linkery atd.) pro programování,
odlaďování a přenos dat využívají však pouze ty druhy záznamů , které nejlépe slouží pro
účely daného programu.
Podobně také monitor M-Buffalo u školního mikropočítače MS11-A10 . Student využívá
pouze dva druhy záznamů typu S. Je to záznam S1 a záznam S9. Na příjem záznamu typu
S reaguje monitor tak, že ignoruje všechna data před prvním záznamem S1. Z toho důvodu
musí být všechny záznamy, ukládané do paměti školního mikropočítače typu S1 a celý
přenos je ukončen záznamem S9.
Soubor se záznamem typu S , který přenášíme do paměti školního mikropočítače,
může obsahovat tedy následující záznamy:
SO - Záznam záhlaví pro každý přenášený blok. Položky kódovaných instrukcí/dat
nemohou zahrnovat žádnou popisnou informaci, která daný blok identifikuje pro potřeby
uživatele. Proto záznam SO slouží k uložení popisných informací, které se vztahují
k následujícím záznamům, a monitor na něj nereaguje. Jeho adresová položka je normálně
nulová.
S1 - Záznam obsahující kódované instrukce/data a dva bajty adresy, od které se mají tyto
položky ukládat.
S2 až S8 - Nejsou použitelné na školním mikropočítači.
Poznámky
MIKROPOČÍTAČE -ASSEMBLER
5 - 13
Poznámky
S9 - Ukončovací záznam pro blok záznamů typu S1. Adresová položka může nepovinně
obsahovat dvoubajtovou adresu instrukce, na kterou se předá řízení. Jestliže není určena,
bere se v úvahu pro tyto účely první adresa přeneseného objektového modulu. Neobsahuje
žádné kódované instrukce/data.
Pro každý blok záznamů typu S se používá pouze jeden ukončovací záznam. Co se týká
záznamu záhlaví, obvykle se také používá pouze jeden, ačkoliv nic nebrání, aby jich bylo
v přenášeném bloku víc.
5.3.3 Vytváření záznamů typu S
Záznamy typu S pro školní mikropočítač lze vytvářet několika obslužnými programy pro
výpis obsahu paměti a dále s pomocí vývojových prostředí, křížových assemblerů a linkerů.
Jsou také dostupné programy, které mohou přenést obsah paměti školního mikropočítače ve
formátu typu S na hostitelský počítač nebo terminál.
Příklad záznamu typu S
Následující typický příklad záznamu ve formátu typu S, tak jak se vytiskne nebo zobrazí na
displeji:
S0 06 00 00 48 44 52 1B
S1 13 00 00 28 5F 24 F2 21 22 26 A1 20 42 42 90 01 22 27 C0 12
S1 13 00 10 00 20 00 80 00 82 62 90 01 85 38 12 34 10 01 81 33
S1 13 00 20 41 E9 00 08 4E 42 23 43 00 18 23 42 00 08 24 A9 52
S1 07 00 30 00 14 4E D4 92
Poznámky
MIKROPOČÍTAČE -ASSEMBLER
5 - 14
Poznámky
S9 03 00 00 FC
Výše uvedený modul sestává se záznamu záhlaví SO, čtyř záznamů kódovaných
instrukcí/dat S1 a jeden ukončovací záznam S9.
Záznam SO se skládá z následujících znakových párů:
SO
Indikátor záhlaví.
06
Hexadecimální hodnota 06 (dekadicky 6) udává, že následuje šest znakových
párů (znaků v kódu ASCII).
00
00
48
Dvoubajtová adresa vyjádřená čtyřmi znaky.
Jméno záhlaví „HDR“ pro uživatelskou identifikaci v kódu ASCII.
44
52
1B
Kontrolní součet záznamu SO.
První ze záznamu S1 se skládá z následujících znakových párů:
S1
Druh záznamu typu S, tj. S1,který indikuje, že záznam kódovaných instrukcí/dat se
má uložit do paměti a verifikovat.
13
Hexadecimální hodnota 13 (dekadicky 19) indikující 19 znakových párů, které
reprezentují kódované instrukce/data.
Poznámky
MIKROPOČÍTAČE -ASSEMBLER
5 - 15
Poznámky
00
Čtyřznaková dvoubajtová adresa. Hexadecimální adresa 0000 indikuje počátek 00
umístění následujících přenášených bajtů instrukcí/dat.
Následuje 16 znakových párů v ASCII, které obsahují skutečný zakódovaný program a
data. Zápis tohoto programu v operačních kódech a v mnemonice jazyka symbolických
adres je následující:
HEXADECIMÁLNÍ KÓDY
MNEMONICKÉ INSTRUKCE
28
5F
BVC
$0061
25
5F
BHS
$0063
22
12
BHI
$0018
22
6A
BHI
$0072
12
04
BRSET
0,$04, $002F
29
00
BVS
$000D
12
23
BRSET
4, $23, $008C
24
7C
(Další část tohoto programu je zapsána v následujících záznamech typu S1 a uloží se od
adresy $0010.)
01
Kontrolní součet prvního záznamu S1.
Druhý a třetí řádek záznamu typu S1 obsahují také $ 13 (19) znakových párů a jsou
ukončeny kontrolními součty $13 a $ 52. Čtvrtý řádek záznamu typu S1 obsahuje $ 07
znakových párů a jeho kontrolní součet je $ 92.
Poznámky
MIKROPOČÍTAČE -ASSEMBLER
Poznámky
Ukončovací záznam S9 se skládá z následujících položek:
S9
Typ záznamu S9 indikuje, že se jedná o zakončovací záznam.
03
Hexadecimální hodnota 03 ukazuje, že následují tři znakové páry.
00
Čtyřznaková dvoubajtová adresa je nulová.
FC
Kontrolní součet záznamu S9.
Poznámky
5 - 16
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
6-1
Poznámky
6
REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
•
pomoc operátorovi,
•
podpora vlastností reálného času, víceuživatelských a víceúlohových systémů.
Jednoúlohový systém
OS CP/M (Basic Input Output System, Basic Disc Operating System, Console Comand
Processor)
RTOS “background/foreground”
•
hodiny reálného času - jediné přerušení
•
v paměti dvě části. V jedné je program, který reaguje na přerušení (popředí), ve
druhé program, který může běžet, když nejede program na popředí.
Víceúlohové a víceúrovňové OS
•
jeden procesor
•
víceuživatelský systém - musí zajistit přístup na procesor všem uživatelům v témže
čase. Řešení zcela nezávislých úloh.
•
víceúlohový - 1 uživatel, více úloh spolu souvisejících.
RTOS musí zajistit:
•
přidělování zdrojů počítače různým aktivitám
Poznámky
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
Poznámky
•
obsluhovat prioritní systém
•
komunikaci mezi úlohami (společná paměť, zprávy)
•
aktivaci úlohy externími událostmi
•
ochranu před současným vstupem do kritických sekcí
•
správu paměti
6.1 Struktura RTOS
6.1.1 Jádro OS
•
plánovač,
•
dispečer,
•
knihovna programů pro realizaci služeb RTOS
6.1.2 Data
•
vektory procesů,
•
vektory systémových prostředků,
•
data aktuálního procesu,
•
data RT,
•
systémová data.
Poznámky
6-2
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
6-3
Poznámky
6.2 JÁDRO RTOS - provádí plánování a přepínání
1. úroveň Plánovač ∼ Scheduler - plánuje vyšší úroveň na základě informací o dostupnosti
různých zdrojů RTOS (tiskárny, disky, periferie....), mění stav na připravený nebo čekající.
2. úroveň Dispečer ~ Dispatcher (low-level scheduler) - vyměňuje aktivní proces za jiný
aktivní proces, který je připraven s nejvyšší prioritou. Dále zabezpečí okamžité přeplánování
procesu.
6.2.1 Příkazy pro změnu stavu úloh
Deadlock - dva nebo více procesů nemohou pokračovat v práci, poněvadž se vzájemně
blokují. Situaci musí řešit RTOS (detekce a zabránit vzniku).
výlučná
žádost
X
A
B
použití
výlučná
žádost
Poznámky
Y
použití
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
6-4
Poznámky
6.3 Správa a řízení paměti
6.3.1 Statický systém
•
v průběhu běhu úloh nevznikají nové. (Jediný uživatelský prostor)
•
úlohy jsou rozmístěny v segmentech - nepružné vzhledem k velikosti úloh a pevně
stanovených segmentů.
6.3.2 Dynamický systém - technika plovoucí paměti
Paměť rozdělena do malých bloků (např. 64 slov), RTOS udržuje bitovou mapu, která
reviduje obsazenost nebo neobsazenost těchto bloků. RTOS pak při požadavku na běh
úlohy najde dostatečně dlouhou souvislou oblast, obsadí ji a změní stav bitové mapy. Při
odkládání úlohy opačně. Často spouštěné úlohy zůstávají v paměti, přemisťované úlohy jsou
ty méně často spouštěné.
Poznámky
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
6-5
Poznámky
systém
systém
ovladače
ovladače
prostor
segmenty (partition)
uživatele
pracovní oblast
pracovní oblast
6.3.3 Technika segmentace programu
Program je sestaven do sekvence segmentů, které se postupně provádějí (chaining),
překryvná struktura programu (overlaying) - program je uspořádán do stromové struktury
segmentů. V hlavní paměti pak zůstává kořen stromu a segmenty dosažitelné cestou stromu.
Segmenty se nahrávají do paměti voláním procedur ze segmentů umístěných momentálně v
paměti.
Poznámky
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
6-6
Poznámky
6.3.4 Sdílení kódu
Problém - několik úloh vyžaduje využívat v jednom okamžiku stejný kód. Obecně může
dojít k vzájemnému ovlivnění. Dvě techniky řešení:
a) sériově použitelný kód:
Ú
A
Ú
A
Ú
B
data
kód
Ú
B
kód
data
SUBRUTINA
čistý kód
b) reentrantní kód
Sdílená subrutina nesmí mít lokální data, všechny mezivýsledky i výsledky jsou ukládány
dovolující úlohy nebo do zásobníku úlohy.
Poznámky
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
6-7
Poznámky
ÚB
ÚA
LOCK
SUBRUTINA
UNLOCK
6.4 Plánování úloh, přidělování procesoru
Plánování:
•
technika časových dávek (pravidelná střídání procesů)
•
prioritní strategie (priority pevné nebo dynamicky se měnící). U pevných priorit
nutno pevně a správně určit, u dynamických mění prioritu vysokoúrovňový plánovač
- nejdéle čekajícím úlohám zvyšuje prioritu.
Proces existuje, když je program, který jej řídí a procesor, který jej realizuje. Proces je
dynamická instance programu realizovaná procesorem.
Řízení procesů se realizuje prostřednictvím jádra operačního systému. Procesy se nacházejí
v různých stavech.
Poznámky
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
6-8
Poznámky
Cílem každého procesu je být ve stavu “aktivní”. Dosažení tohoto stavu závisí na strategii
vybírání z fronty připravených procesů - na plánovacím algoritmu. Různé přístupy ke
strategii:
•
dosažení max. využití procesoru
•
propustnost měřená počtem procesů proběhlých za čas
•
průměrná doba existence procesů
•
dosažení co nejrychlejší odezvy na externí požadavky
•
minimalizace doby strávené čekáním ve frontách.
6.5 Plánovací strategie
6.5.1 Cyklické plánování
•
procesor se přiděluje v časových kvantech
•
jestli se proces v kvantu neukončí, přepne se kontext
•
při ukončení časového kvanta se proces zařazuje do fronty připravených na konec,
fronta se obsluhuje FIFO
•
časové kvantum ≈ milisekundy - desítky milisekund
•
čím menší, tím větší režijní členy.
Poznámky
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
6-9
Poznámky
6.5.2 Prioritní strategie
•
priorita vyjadřuje přednost procesu při přidělování procesoru
•
vyjadřuje se přirozenými čísly
•
může být několik procesů se stejnou prioritou
•
problém “stárnutí procesů” s nízkou prioritou při existenci více procesů s vyšší
prioritou (řeší se dynamickou změnou priorit)
•
přidělování priority
o kritéria vyplývající z charakteru aplikace
o časové kritérium SJF (Short Job First) - provede se odhad celkové doby
běhu procesu a nejkratší procesy dostanou nejvyšší prioritu.
6.5.3 Kombinované strategie
•
prioritní strategie se uplatňuje jen na prvých K prioritních úrovních
•
na nižších prioritních úrovních než K se samostatně na každé z
nich uplatňuje
cyklické plánování (každá tato úroveň má samostatnou funkci připravených procesů.
6.5.4 Preemtivní a nepreemtivní plánování
nepreemtivní
•
úlohy jsou prováděny postupně - každá až do konce - výběr se provádí jen ve smyslu
“který proces bude převeden na procesor” .
Poznámky
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
6 - 10
Poznámky
preemtivní
(to preemt ≈ získat předem, přivlastnit si, preemtive ≈ předem obsazený, zabraný).
•
může být několik úloh v různém stadiu provádění
•
při příchodu úlohy s vyšší prioritou je prováděná úloha přerušena a pokračuje až
když není v systému žádná úloha s vyšší prioritou.
Poznámky
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
6 - 11
Poznámky
PRIORITNÍ ÚROVNĚ
Přidělení priority závisí na tom jak rychle má být úloha obsloužena, jak rychle a přesně musí
reagovat.
1. okruh - úroveň přerušení - úlohy reagují řádově v ms. Na této úrovni pracuje dispečer a
hodiny reálného času. HW přerušení - činnost obsluhy přerušení musí být minimalizována,
rozsáhlejší zpracování se přenechá obslužné úloze na nižší prioritní úrovni.
2. okruh - úroveň hodin - zpravidla úlohy, které vyžadují cyklické opakování (měření,
výstupy, regulátory...) nebo úlohy s rychlou reakcí (start, stop, ...). Úroveň hodin - zde
pracuje rutina pro obsluhu hodin reálného času (20 - 200 ms) a je cyklicky spouštěn
dispečer (jádro), který může spouštět ůlohy:
- cyklické - uspořádány prioritně
- časově odložené - tyto si sami plánují časové prodlevy mezi jednotlivými operacemi nebo
mezi opakovaným spouštěním. (Pokud systém neumožňuje ošetření úloh cyklických mohou
se ošetřit touto technikou.
3. okruh - nízká úroveň - nejsou stanoveny časové limity, nebo je povolen velký časový
rozptyl. základní úroveň - úlohy se spouští většinou na základě náhodně vzniklých
požadavků (vstup z klávesnice, událost z řízeného procesu apod.).
Poznámky
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
Poznámky
Poznámky
6 - 12
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
6 - 13
Poznámky
6.6 RTOS pro PC
•
běží v prostředí OS DOS
•
je to modul, který se přilinkuje k ostatním aplikačním modulům. Aplikace = 1 exe
soubor
•
ovládá běžící procesy pomocí služeb
•
všechny moduly, které služby používají musí obsahovat # include <RTM.H>
•
main program musí obsahovat volání inicializační služby RTMONu init_rtm( ) - tím
se vytvoří procesy INIT (priorita 0) a DUMMY (255)
•
po ukončení se znovuspustí INIT a v něm je třeba zastavit a abortovat všechny
procesy
•
na závěr ukončit činnost INIT a DUMMY službou rtm_end ( )
služby:
•
pro ovládání procesů
•
pro práci se schránkami a zprávami.
data:
•
datové struktury jednotlivých procesů
•
datové struktury schránek
•
kódy chybových hlášení
•
přípustné hodnoty pro stav
Poznámky
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
Poznámky
6.6.1 Datová struktura procesu
typedef struct
{
char name [ 8 ];
jméno proc. (jen pro ladící účely)
unsigned int ident;
identifikační byte
unsigned int no_ident;
negace předchozího byte
unsigned char kandler;
nepoužit
unsigned char prio;
unsigned char stat;
stav procesu
void (far * pfunc) ( );
char far * pstack;
poč. adr. zásobníku
int stack_size;
unsigned stack_limit;
limit pro kontrolu zásobníku
void (far * pres);
adr. id. rekordu předch. proc. ve frontě
void (far * next);
adr. následujícího proc. ve frontě
long time_period;
long time_to_start;
long time_of_start;
char * pnusg;
adr. pole pro zprávu
ALLREG reg;
pomoc. dat. struktura CTOOLS
} IDPROC;
Poznámky
6 - 14
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
6 - 15
Poznámky
6.6.2 Datová struktura schránky
type struct
{
char name [ 8 ];
jméno pro ladění
unsigned int ident;
identifikační byte RTM_IDENT_Q
unsigned int no_ident;
negace předchozího byte
int n_buff;
int l_msg;
int n_wait_buff;
počet obsaz. buff. ve schránce
char * buff_guenes;
ukazatel na pole buff.
int first_buff;
index 1. obsaz. buff.
int last_buff;
index posledního buff.
int emty_buff;
index 1. volného buff.
IDPROC * pid_proc_msg;
ukaz. na 1. proces čekající na zprávu
IDPROC * pid_proc_buff;
ukaz. na 1. proces čekající na volnou schránku
} IDQUEUE;
Poznámky
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
Poznámky
6.6.3 Kódy chybových hlášení
RTMON_OK
0
bezchybný návrat
RERR_NO_MEM
1
málo paměti na alokaci
RERR_N_SERV
2
chybné číslo služby
RERR_ID_PROC
3
nepřípustný id_record procesu
RERR_ST_PROC
4
nepřípustný stav procesu pro danou službu
RERR_ID_QUEUE 5
nepřípustný id_record schránky
RERR_EMPTY_Q
6
prázdná schránka
RERR_FULL_Q
7
plná schránka (všechny buff. naplněny)
1
proces je pouze definován, neiniciován
STAV PROCESU
PST_SLEEP
PST_ACTIVE
2
proces je aktivizován, může být spuštěn
PST_RUN
3
běžící proces
PST_W_TIME_S
4
čekající na uplynutí času do spuštění
PST_W_TIME_C
5
čekající na uplynutí času do pokračování
PST_INTRPT
6
přerušený (pozastavený) proces
PST_STOPPED
7
ukončený proces
PST_W_Q_MSG
8
čekající na zprávu ve schránce
PST_W_Q_BUFF
9
čekající na schránku (volný buffer ve schránce)
Poznámky
6 - 16
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
6 - 17
Poznámky
6.6.4 Služby pro práci s procesory
Inicializace jádra
int rtm_init (IDPROC ** init_id);
•
init_id - identifikátor inicializačního procesu
•
proces, ze kterého je RTMON inicializovaný je označen jako proces běžící s
prioritou 0
Příklad:
IDPROC
* proces_1_id,
* proces_2_id,
.
* proces_n_id,
* init_id;
.
main
{
.
rtm_init (& init_id);
.
.
Poznámky
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
6 - 18
Poznámky
Ukončení práce jádra
int rtm_end (IDPROC * init_id);
•
*init_id – identifikátor, s kterým byl RTMON inicializován
•
zastaví všechny procesy, dál pokračuje bez reálného času
.
.
rtm_end ( init_id);
Vytvoření procesu
int rtm_create_p(char * pname, char prio, void(*pfunc)( ),
int stack_size, IDPROC** proc_id);
•
*pname - pointer na jméno procesu (max 12 znaků)
•
prio - priorita procesu (1 - 254) nejvyšší je 1
•
*pfunc - pointer na funkci void pfunc (void), která představuje vlastní proces.
NESMÍ BÝT UKONČENA RETURN, ALE rtm_stop_p
•
stack_size - velikost zásobníku
•
*proc_id - identifikátor procesu (pointer na proces) pro další ovládání procesu
•
alokují se datové struktury, zásobník a proces je převeden do stavu pozastaven
Příklad:
rtm_create_p(„PROCES 1“, 20, proces_1, 1000,& proces_1_id);
Poznámky
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
6 - 19
Poznámky
Spuštění procesu
int rtm_start_p(IDPROC * proc_id, long time_to_start, long time_period);
•
*proc_id - identifikátor procesu
•
time_to_start - čas, který má uplynout do startu procesu , 0 = okamžité spuštění; čas
v ticích RTMON 1 sec = 18,2 tiků.
•
time_period - perioda opakovaného spuštění; 0 = jednorázové
•
proces musí být ukončen rtm_stop_p, aby mohl být opět spuštěn
•
úplné zastavení procesu = změna periody na 0 a následné zastavení
Příklad:
rtm_start_p(proces_ 1_id, 0, 10);
Pozastavení procesu
int rtm_delay_p(IDPROC * proc_id, long time_to_delay);
•
proc_id - identifikátor procesu
•
time_to_delay -
časový interval (v ticích RTMON), na který má být proces
pozastaven; je-li
pozastaven na neurčitou dobu, může se znovuspustit službou
rtm_continue_p
Příklad:
rtm_delay_p(proces_ 1_id, 0, 91);
Poznámky
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
6 - 20
Poznámky
Znovuspuštění pozastaveného procesu
int rtm_continue_p(IDPROC * proc_id);
•
*proc_id - identifikátor procesu
•
znovuspuštění procesu pozastaveného funkcí rtm_delay_p
Změna periody volání procesu
int rtm_ch_period_p(IDPROC * proc_id, long time_period);
•
*proc_id - identifikátor procesu
•
time_period - nová hodnota časové periody (v ticích) - počítá se od startu do startu
- nezávisí na době běhu procesu - k opakovanému spuštění může dojít až po
ukončení předchozího běhu službou rtm_stop_p.
Příklad:
rtm_ch_period_p(proces_ 1_id, 0, );
Zastavení procesu
int rtm_stop_p(IDPROC * proc_id );
•
proc_id - identifikátor procesu
•
proces je okamžitě zastaven, je možno jej spustit službou rtm_start_p (ne
rtm_continue_p)
Poznámky
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
6 - 21
Poznámky
•
byl-li proces spuštěn periodicky a nechceme už jeho další spuštění, musíme před
stop změnit jeho periodu spouštění na 0.
Příklad:
rtm_stop_p(proces_ 1_id, );
Abortování procesu
int rtm_abort_p(IDPROC * proc_id );
•
*proc_id - identifikátor procesu
•
zruší se celý proces včetně jeho datových struktur
•
další použití procesu jen přes službu rtm_create_p
6.6.5 Služby pro práci se schránkami a zprávami
Vytvoření schránky
int rtm_create_q(char * pname, int l_msg, int n_buff, IDQUEUE **pid_queue );
•
*pname - pointer na jméno schránky
•
l_msg - délka bufferu pro 1 zprávu
•
n_buff - počet bufferů - počet zpráv, které mohou čekat na čtení
•
** pid_queue - identifikátor schránky - adr. pointru na schránku
Příklad:
rtm_create_q(„SM1“, 2, 5, & SCH1);
Poznámky
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
6 - 22
Poznámky
•
vytvoření schránky - platí pro každou používanou schránku
•
zprávy se fyzicky přesouvají z buff. vysílajícího procesu do buff. ve schránce a pak
do buff. přijímajícího procesu
•
prostor se alokuje dynamicky
•
u více zpráv systém FIFO
Zápis zprávy
a) BEZ ČEKÁNÍ NA VOLNOU SCHRÁNKU
int rtm_write_q(IDQUEUE * pid_queue, void * pdata);
•
*pid_queue - identifikátor schránky
•
*pdata - pointer na data, která mají být zapsána do schránky
•
zápis je proveden do prázdné schránky ihned, není-li volná program pokračuje bez
zápisu zprávy dál - zpráva je ztracena
Příklad:
rtm_write_q(SM1, & zpráva 1 );
b) S ČEKÁNÍM NA VOLNOU SCHRÁNKU
int rtm_write_q_w(IDQUEUE * pid_queue, void * pdata);
Poznámky
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
6 - 23
Poznámky
•
v případě, že ve schránce jsou zprávy - je plná - přejde zapisující proces do stavu
čekající na volnou schránku a automaticky začne pokračovat po uvolnění příslušné
schránky
Čtení zprávy
a) BEZ ČEKÁNÍ NA ZPRÁVU
int rtm_read_q(IDQUEUE * pid_queue, void * pdata);
•
pid_queue - identifikátor schránky
•
pdata - pointer na data, kam má být zpráva zapsána
•
pokud ve schránce zpráva není, program pokračuje dál
b) S ČEKÁNÍM NA ZPRÁVU
int rtm_read_q_w(IDQUEUE * pid_queue, void * pdata);
•
pokud ve schránce zpráva není, program (proces), který ji chce číst se převede do
stavu čekající na zprávu a automaticky pokračuje až ji do schránky některý jiný
proces zapíše.
Příklad:
rtm_read_q_w(SCH1, & zpr3 );
Poznámky
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
6 - 24
Poznámky
6.7 Charakteristika RTMON - HC11
•
preemptivní systém
•
samostatný soubor, který se přilinkuje k uživatelským procesům
•
je užíván pomocí služeb
o služby pro práci s procesy
o služby pro práci se schránkami a zprávami
•
musí být inicializován
Vektor uživatelského procesu
NÁZEV DÉLKA
VÝZNAM
HDNPRO
1
číslo procesu (identifikátor)
HDPRIO
1
HDSTAR
HDSTAC
HDSTSZ
HDAKST
HDPCYK
HDPTRU
HDPDLY
HDSTAT
2
2
2
2
2
2
2
1
priorita (nejvyšší 1, nejnižší 254), systém si vyhrazuje priority 0 a
255
startovací adresa procesu
adresa dna zásobníku procesu
velikost zásobníku
aktuální hodnota ukazatele zásobníku procesu
časová perioda spouštění (počet systémových tiků)
zbývá period do spuštění (počet systémových tiků)
zbývá period do konce pozastavení (počet systémových tiků)
stav procesu
STDEF pouze definován pomocí CRTP
STREDY
připraven na spuštění
STRUN
běžící
STSTOP
pozastavený
STABOR
abortovaný
STWTIM
čeká na uplynutí času do spuštění
STWCON
čeká na uplynutí času do pokračování
Poznámky
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
6 - 25
Poznámky
STWQF
STWQE
STOVRT
HDSOW
HDNEXT
HDRESV
2
2
2
čeká na zprávu ve schránce, jejíž adresa je v HDSOW
čeká na uvolnění schránky, jejíž adresa je v HDSOW
proces přetekl přes časovou periodu spouštění
(Stop)
adresa schránky na kterou se čeká
adresa další hlavičky procesu (0000H = poslední hlavička)
rezerva
Vektor schránky
NÁZEV
DÉLKA VÝZNAM
QSTAT 1
stav schránky
QBOX 2
obsah schránky
6.7.1 Volání služeb
•
Před voláním služby je nutno naplnit příslušné vstupní registry podle požadavků
volané služby.
•
Akumulátor A obsahuje číslo volané služby ( pevně dáno ).
•
Akumulátor B většinou
obsahuje
číslo procesu, což je identifikátor vrácený
službou CRTP (založení procesu - registrace pro jádro RTMON).
•
Každá služba vrací nejméně akumulátor A, kde je uložen návratový kód procesu
(chyba).
•
Vlastní volání jádra RTMON se provede pomocí instrukce JSR SERV, čímž se
předá řízení manažeru služeb.
Poznámky
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
6 - 26
Poznámky
Seznam návratových kódů služeb
NÁZEV
VÝZNAM
EOK
OK, žádná chyba
ENS
chybné číslo služby
ENP
chybné číslo procesu (neznámý identifikátor)
EQFU
schránka je plná (nelze zapsat do schránky)
EQEM
schránka je prázdná (nelze číst ze schránky)
ETPF
nelze založit další proces, tabulka procesů je plná
ETQF
nelze založit další schránku, tabulka schránek je plná
Číselné vyjádření kódů naleznete ve zdrojovém textu programu RTMON HC11.
6.7.2 Popis služeb
Služby pro práci s procesy
CRTP - založení procesu
•
Vyplní hlavičku procesu do tabulky hlaviček a regulérně zaregistruje proces pro
jádro systému.
•
Nastavuje zásobník procesu a hodnotu jeho aktuálního ukazatele na dno zásobníku.
•
Stav procesu nastaví na „pouze
definován“ a vyplní proměnnou HDSTAR ve
vektoru procesu startovací adresou procesu.
•
Vrátí identifikátor procesu, kterým se odkazují ostatní služby na daný proces.
Poznámky
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
6 - 27
Poznámky
•
Je možno založit až 20 procesů (bez úpravy).
STRP - spuštění procesu
•
Spustí založený proces buďto jednorázově nebo s periodickým spouštěním.
•
Při periodickém spouštění musí uživatel zaručit, že proces bude dokončen do doby
dalšího možného spuštění. Pokud tato situace přece jen nastane, bude proces
vyloučen z dalších rozhodování jádra a obdrží status STOVRT.
•
Při definovaném pozastavení do prvního spuštění nejsou odpočítávány tiky procesu
v periodě spouštění. Proces počká až uplyne doba do spuštění, spustí proces a začne
odpočítávat tiky do dalšího spuštění.
DLYP - pozastavení procesu
•
Pozastaví další zpracování procesu buďto na neurčito nebo na zadanou dobu.
•
Je-li pozastavení časově omezeno, proces pokračuje po uplynutí časového intervalu.
•
Není-li časově omezeno, nemůže proces již dále pokračovat dokud jiný proces
nespustí službu CONP.
CONP - pokračování procesu
•
Povolení dalšího zpracování procesu pozastaveného službou DLYP.
•
Má-li pokračovat proces s vyšší prioritou, dostane ihned přidělen procesor, v jiném
případě musí počkat, až budou uspokojeny ostatní procesy s vyššími prioritami.
CHPP - změna periody spouštění
Poznámky
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
6 - 28
Poznámky
•
Změní periodu spouštění u periodicky spouštěných procesů.
•
Lze s výhodou využít pro zastavení dalšího periodického spouštění nebo pro
zahájení spouštění s novou periodou.
•
Je nutno mít na paměti, že programátor aplikace musí zaručit ukončení procesu do
příchodu dalšího požadavku na spuštění.
STOP - zakončení procesu
•
Slouží k zakončení práce procesu.
•
Musí být na konci každého procesu!
•
Provádí regulérní korekci dat vektoru procesu.
•
Pokud nebude proces před předáním procesoru jádru systému ukončen touto
službou, bude systém zablokován bez šance k regulérnímu obnovení práce bez
resetu mikropočítače.
ABRP - abort procesu
•
Provede symbolické vyřazení procesu z tabulek systému.
•
Je-li periodicky spouštěn musí být perioda spouštění před službou ABRP
vynulována pomocí služby CHPP!
•
Programátor by po použití služby ABRP neměl provádět s daným procesem žádné
další operace.
Poznámky
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
6 - 29
Poznámky
•
Tato služba nemá v RTMON HC11 tak výrazně nutné uplatnění jako v jiných
systémech reálného času, jelikož se programy nemohou do mikropočítače zavádět
dynamicky a není tedy třeba uvolňovat paměť jiným aplikacím.
Služby pro práci se schránkami a zprávami
CRTQ - založení schránky
•
Založí schránku pro výměnu dat mezi procesy a vrátí identifikátor schránky, kterým
se odkazují ostatní procesy na tuto datovou strukturu.
•
Schránka má velikost 2 byty a je možno založit až 20 schránek.
WRTQ - zápis do schránky bez čekání
•
Zapíše informace z registru IY do schránky určené identifikátorem bez čekání na
volnou schránku.
•
Je -li ve schránce stará zpráva, bude přepsána a vrácen kód chyby EQFU.
WRWQ - zápis s čekáním na volnou schránku
•
Zapíše informace z registru IY do schránky určené identifikátorem s čekáním, dokud
je ve schránce stará zpráva.
•
Po dobu čekání není procesu přidělován procesor.
REDQ - čtení ze schránky bez čekání
•
Čte zprávu ze schránky.
•
Je-li schránka prázdná, vrací zprávu 0000H a kód chyby EQEM.
Poznámky
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
6 - 30
Poznámky
RDWQ - čtení s čekáním na zprávu
•
Čte zprávu ze schránky.
•
Pokud je schránka prázdná, čeká až bude naplněna některým z procesů.
DELQ - zrušení schránky
•
Symbolicky zruší schránku.
•
Musí být zajištěno, že v okamžiku rušení již schránka není používána žádným
procesem.
Přehled služeb
ZKRATKA
NÁZEV
PARAMETRY
CRTP
založení procesu
A = 1, B = priorita
IX = adresa počátku procesu
IY = velikost zásobníku
vrací: A = chyba, B = číslo procesu (identifikátor)
STRP
spuštění procesu
A = 2, B = číslo procesu
IX = počet tiků systému do startu procesu (0 =
bez čekání)
IY = perioda spouštění procesu (0 = není
periodicky spouštěn)
vrací: A = chyba
DLYP
pozastavení
A = 3, B = číslo procesu
IX = počet tiků pozastavení procesu (0 =
neomezeně)
vrací: A = chyba
Poznámky
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
Poznámky
CONP
pokračování
procesu
A = 4, B = číslo procesu
vrací: A = chyba
CHPP
změna periody
spouštění
A = 5, B = číslo procesu
IX = nová perioda spouštění
vrací: A = chyba
STOP
zakončení
procesu
A = 6, B = číslo procesu
vrací: A = chyba
ABRP
abort procesu
A = 7, B = číslo procesu
vrací: A = chyba
CRTQ
založení
schránky
A=8
vrací: A = chyba, IX = adresa schránky
WRTQ
zápis do
schránky
A=9
IX = adresa schránky
IY = obsah zprávy
vrací: A = chyba
WRWQ
zápis s čekáním
na volnou schr.
A = 10
IX = adresa schránky
IY = obsah zprávy
vrací: A = chyba
REDQ
čtení ze schránky
A = 11
IX = adresa schránky
IY = obsah zprávy
vrací: A = chyba
RDWQ
čtení s čekáním
na příchod zpr.
A = 12
IX = adresa schránky
IY = obsah zprávy
Poznámky
6 - 31
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
6 - 32
Poznámky
vrací: A = chyba
Seznam systémových proměnných
AKTHED
adresa hlavičky právě běžícího procesu
AKTPRIO
priorita právě běžícího procesu
AKTNUM
číslo aktivního procesu
MEMADR
adresa 1 byte volné paměti pro alokaci schránek
TIMRTM
počet tiků od startu jádra RTMONu
MSN
maximální přípustné číslo služby
NUMHED
další volné číslo procesu
NUMQUE
další volné číslo schránky
TPNX
adresa dalšího volného záznamu v tabulce hlaviček
TQNX
adresa dalšího volného záznamu v tabulce schránek
TSNX
adresa volné adresy v oblasti zásobníků pro alokaci
TPSRC
velikost jednoho záznamu v tabulce hlaviček
CYKNX
ukazatel na další volný byte v CYKL
TPLS
adresa poslední hlavičky procesu v tabulce hlaviček
Systémové tabulky
TABHED
tabulka hlaviček procesů (max. 20)
TABQUE
tabulka schránek (max. 20)
TABSRV
tabulka adres služeb (zatím 13)
STACKS
prostor pro zásobníky (20 zásobníků po 32 bytech - lze dynamicky měnit
velikost jednotlivých zásobníků, ale nesmí se překročit průměr 32 na jeden)
Poznámky
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
Poznámky
MAPA PAMĚTI
NÁVĚŠTÍ
POPIS
OCOOOH
TABHED
Tabulka 20 uživatelských vektorů procesů
TABQUE
Tabulka 20 uživatelských schránek
TABSRV
Tabulka adres služeb (pro manažer služeb)
STACKS
Oblast pro 20 zásobníků uživatelských procesů
TABCYK
Tabulka pro vyhodnocení cyklického přepínání procesů
AKTHED
Počátek bloku systémových proměnných
RTSTRT
Startovací rutina systému
RTEND
Ukončovací rutina systému
DUMMY
Vytěžovací proces systému
TIK
Podprogram obsluhy přerušení od obvodu reálného času
JADRO
Rutina zajišťující přepínání a řízení procesů
SERV
Manažer služeb
FNDTPH
Rutina pro hledání adresy vektoru procesu podle čísla proc.
CRTP
Služba založení procesu
STRP
Služba nastartování procesu
DLYP
Služba pozastavení procesu
CONP
Služba ukončující pozastavení procesu
CHPP
Služba změny periody spouštění procesu
STOP
Služba zastavení procesu
ABRP
Služba zrušení procesu
Poznámky
6 - 33
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
6 - 34
Poznámky
CRTQ
Služba založení schránky
WRTQ
Služba zápisu dat do schránky bez čekání
WRWQ
Služba zápisu dat do schránky s čekáním
REDQ
Služba čtení dat ze schránky bez čekání
RDWQ
Služba čtení dat ze schránky s čekáním
DELQ
Služba zrušení schránky
QSERV
Rutina zajišťující synchronizaci schránek
DINIT
Ovladače displeje (Mesit)
RTCINIT
Ovladače obvodu reálného času (Mesit)
MAIN
Blok uživatelských procesů
MEMADR
Ukazatel na první volný byte paměti
OCBOOH
Demonstrační příklad programu v reálném čase
hlavní program
MAIN
Poznámky
JSR
RTSTRT
inicializace RTMONu a jeho spusteni
LDAA
#$01
vyplneni hlavicky procesu 1
LDAB
#05
priorita
LDX
#PROC1
adresa zacatku procesu
LDY
#32
velikost zasobniku
JSR
SERV
STAB
IDE1
uschovna cisla procesu
LDAA
#$01
vyplneni hlavicky procesu 2
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
Poznámky
Poznámky
LDAB
#05
priorita
LDX
#PROC2
adresa zacatku procesu
LDY
#32
velikost zasobniku
JSR
SERV
STAB
IDE2
uschova cisla procesu
LDAA
#$02
spusteni procesu 1
LDAB
IDE1
identifikátor
LDX
#$0000
tiku do startu
LDY
#$0004
perioda spousteni
JSR
SERV
start procesu
LDAA
#$02
spusteni procesu 2
LDAB
IDE2
identifikator
LDX
#$0000
tiku do startu
LDY
#$0008
perioda spousteni
JSR
SERV
start procesu
LDAA
#$03
sluzba DLYP
LDAB
#$00
pozastaveni hlavniho programu
LDX
#$0000
neomezene
JSR
SERV
za touto instrukci bude pokracovat
JSR
RTEND
ukonceni práce jadra RTMONu
6 - 35
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
Poznámky
RTS
*Blok identifikatoru pouzitych procesu
IDE1
FCB
0
cislo procesu 1
IDE2
FCB
0
cislo procesu 2
procesy
*
* Kod procesu P1, pouziva lokalni promenou PROM1
*
PROC1
JSR
dline1
LDAA
#’1’
JSR
douta
LDAA
PROM1
JSR
douta
LDAA
PROM1
CMPA
#’Z’
BEQ
L1
na radek 1 vypisuje promennou PROM1
INCA
L2
L1
Poznámky
STAA
PROM1
LDAA
#$06
LDAB
IDE1
JSR
SER V
LDAA
#’A’
BRA
L2
sluzba STOP
6 - 36
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
6 - 37
Poznámky
PROM1
FCB
‘A’
lokalni promena
*
* Kod procesu P2, pouziva lokalni promenou PROM1
*
PROC2
JSR
dline2
LDAA
#’2’
JSR
douta
LDAA
PROM2
JSR
LDAA
CMPA #’Z’
BEQ
INCA
douta
PROM2
L4
STAA
LDAA
LDAB
JSR
PROM2
#$06
IDE2
SER V
L3
LDAA
BRA
#’A’
L4
PROM2
FCB
‘A’
Poznámky
na radek 2 vypisuje promennou PROM1
L3
sluzba STOP
lokalni promena
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
Poznámky
Obecný monitorovací a řídicí mikropočítačový systém
Poznámky
6 - 38
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
6 - 39
Poznámky
6.8 Programový systém DEMORTM
Systém pracuje s pěti procesy:
PROCES 1:
Je periodicky spuštěn, vypisuje na obrazovku vzestupnou posloupnost čísel od 1 do 5. Po
dosažení čísla 5 se čítá znovu od 1. V případě lichého čísla pošle zprávu Z1 pro PROCES 3.
V případě sudého čísla posílá zprávu Z2 pro PROCES 4.
•
Perioda spouštění: 5 s = 91 tiků
•
Priorita procesu: 20
PROCES 2:
Jednorázově spouštěn. Po spuštění vypisuje na obrazovku znak „ G “ a pozastaví se na 3 s.
Po znovuspuštění znak vymaže.
•
Perioda spouštění: jednorázové spouštění
•
Priorita procesu: 3
PROCES 3:
Čeká na zprávu od PROCESu 1, když ji obdrží vypisuje znak „ 3 “ a spustí jednorázově
PROCES 2.
•
Perioda spouštění: jednorázové spouštění
•
Priorita procesu: 3
Poznámky
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
6 - 40
Poznámky
PROCES 4:
Čeká na zprávu od PROCESu 1, když ji obdrží vypisuje znak „ 4 „ a spustí jednorázově
PROCES 2.
•
Perioda spouštění: jednorázové spouštění
•
Priorita procesu: 15
PROCES 5:
Proces pro obsluhu spouštění a zastavování procesů 1, 2, 3, 4. Spouštění se děje zadáním
znaku „ G „ a čísla procesu, zastavování je obdobné, zadáním znaku „ S “ a čísla procesu.
Pro ukončení programu se zadá znak „ E „ a počítač se vrátí zpět do prostředí MS DOSu.
Při spuštění procesu se vypisuje na spodním řádku „PROCES i“ což signalizuje, že příslušný
proces byl spuštěn, po jeho zastavení signalizace zmizí.
•
Perioda spouštění: jednorázové spouštění
•
Priorita procesu : 29
# include
# include
# include
IDPROC
<rtm.h>
<conio.h>
<stdarg.h>
*proces_1_id,
*proces_2_id,
*proces_3_id,
*proces_4_id,
*proces_5_id,
*init_id;
IDQUEUE *S1,
*S2;
void
proces_1 ( void );
void
proces_2 ( void );
void
proces_3 ( void );
Poznámky
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
Poznámky
void
void
int
proces_4 ( void );
proces_5 ( void );
print ( int x, int y, char *str,...);
void
main ( void )
{
rtm_init (&init_id);
rtm_create_p
rtm_create_p
rtm_create_p
rtm_create_p
rtm_create_p
("PROCES1",
("PROCES2",
("PROCES3",
("PROCES4",
("PROCES5",
20, proces_1, 1000, &proces_1_id);
3, proces_2, 1000, &proces_2_id);
23, proces_3, 1000, &proces_3_id);
15, proces_4, 1000, &proces_4_id);
29, proces_5, 1000, &proces_5_id);
rtm_create_q ("S1", 1, 1, &S1);
rtm_create_q ("S2", 1, 1, &S2);
rtm_start_p (proces_5_id, 0L, 0L);
rtm_delay_p (init_id, 0L);
rtm_ch_period_p(proces_1_id,0);
rtm_stop_p (proces_1_id);
rtm_stop_p (proces_2_id);
rtm_stop_p (proces_3_id);
rtm_stop_p (proces_4_id);
rtm_stop_p (proces_5_id);
rtm_abort_p
rtm_abort_p
rtm_abort_p
rtm_abort_p
rtm_abort_p
(proces_1_id);
(proces_2_id);
(proces_3_id);
(proces_4_id);
(proces_5_id);
rtm_end (init_id);
clrscr();
printf(" Porgram DEMORTM ukoncen \n");
}
Poznámky
6 - 41
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
Poznámky
void
{
static
char
char
proces_1 ( void )
int
i=1;
sprava1='3';
sprava2='4';
print(1,7,"Proces 1 : %d",i);
if(i%2)
else
{
rtm_write_q(S1,&sprava1);
}
{
rtm_write_q(S2,&sprava2);
}
i++;
if(i==6)
i=1;
rtm_stop_p(proces_1_id);
}
void
proces_2 ( void )
{
print(1,8,"Proces 2 : G");
rtm_delay_p( proces_2_id, 54L);
print(1,8,"
");
rtm_stop_p(proces_2_id);
}
void
proces_3 ( void )
{
static int
i=0;
char
sprava;
print(1,9,"Proces 3 : ");
rtm_read_q_w ( S1, &sprava );
if(i)
print(1,9,"Proces 3 : 3 ");
Poznámky
6 - 42
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
Poznámky
else
print(1,9,"Proces 3 : 33");
i=!i;
rtm_start_p(proces_2_id, 0L, 0L );
print(1,9,"
");
rtm_stop_p ( proces_3_id );
}
void
proces_4 ( void )
{
static int
i=0;
char
sprava;
print(1,10,"Proces 4 : ");
rtm_read_q_w ( S2, &sprava );
if(i)
print(1,10,"Proces 4 : 4 ");
else
print(1,10,"Proces 4 : 44");
i=!i;
rtm_start_p(proces_2_id, 0L, 0L );
print(1,10,"
");
rtm_stop_p(proces_4_id);
}
void
proces_5 ( void )
{
int
sluzba;
int
proces;
clrscr();
printf("Demonstracni program pro RTMON");
while(1)
{
gotoxy(1,3);
printf("Zadej sluzbu : ");
clreol();
sluzba=getche();
switch(sluzba)
{
case
'G' :
case
'g' :
gotoxy(1,4);
Poznámky
6 - 43
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
Poznámky
printf("Spusti proces : ");
clreol();
proces=getche();
gotoxy(1,4);
clreol();
switch(proces)
{
case '1' :
rtm_start_p(proces_1_id,0L,91L);
break;
case '2' :
rtm_start_p(proces_2_id,0L,0L);
break;
case '3' :
rtm_start_p(proces_3_id,0L,0L);
break;
case '4' :
rtm_start_p(proces_4_id,0L,0L);
break;
default :
putch(7);
}
break;
case
case
'S' :
's' :
gotoxy(1,4);
printf("Zastav proces : ");
clreol();
proces=getche();
gotoxy(1,4);
clreol();
switch(proces)
{
case '1' :
rtm_ch_period_p(proces_1_id,0);
rtm_stop_p(proces_1_id);
print(1,7,"
");
break;
case '2' :
rtm_stop_p(proces_2_id);
Poznámky
6 - 44
MIKROPOČÍTAČE -REAL – TIMOVÉ OPERAČNÍ SYSTÉMY
Poznámky
print(1,8,"
");
break;
case '3' :
rtm_stop_p(proces_3_id);
print(1,9,"
");
break;
case '4' :
rtm_stop_p(proces_4_id);
print(1,10,"
");
break;
default :
putch(7);
}
break;
case
case
default
}
'E' :
'e' :
rtm_continue_p(init_id);
break;
: putch(7);
}
}
int
print ( int x, int y, char *str,...)
{
int
_x,_y;
va_list argptr;
int cnt;
// uchovam kurzor
_x=wherex();
_y=wherey();
// nastavym kurzor
gotoxy(x,y);
// poslu zasobnik do funkce vprintf
va_start(argptr, str);
cnt = vprintf(str, argptr);
va_end(argptr);
// vratim kurzor
gotoxy(_x,_y);
return(cnt);
}
Poznámky
6 - 45
MIKROPOČÍTAČE - Propopjení s technologickým procesem
7-1
Poznámky
7
PROPOJENÍ S TECHNOLOGICKÝM PROCESEM
7.1 Jednotka pro styk s technologickým procesem
7.1.1 Osmibitový A/D PŘEVODNÍK + 8 binárních vstupů
B
I 1
N
8
A 1
N 2
A
L 8
O
G.
A/D
8
adr4
BIN. ÚDAJE
adr1
ANALOG. ÚDAJE
adr3
MULTI adr2
PLEXOR
START PŘEVOD 4=0
VOLBA Č. KANÁLU
0 V ÷ 10 V
0 ........... k. č. 1
-5V÷+5V
1 ........... k. č. 2
7 ........... k. č. 8
Poznámky
MIKROPOČÍTAČE - Propopjení s technologickým procesem
Poznámky
TEST ANALOG. KANÁLU
TEST BIN. PORTU
č. k. → adr. 2
čas
5µ s
0 → adr.3
čti adr. 4
maskuj
čas 5 µ s
zpracuj
čti + adr. 1
zpracuj
čas
Poznámky
čas
7-2
MIKROPOČÍTAČE - Propopjení s technologickým procesem
7-3
Poznámky
7.1.2 Dvanáctibitový A/D převodník
adr.1
0
bity 0 - 7
M
U
L
T
I
P
L
E
X.
7
A/D
adr. 2
12
adr. 4
x x x
S
bity 8 - 11 S=0
ukončení
START Př. = 0
adr.3
VOLBA č. k.
0 ...........k. č. 1
.
7 ...........k. č. 8
7
z adr. 1
XXXX
0
XXXX
z adr. 2
11
XXXX
X
8
z adr. 1
0000
11
Poznámky
8 7
0
MIKROPOČÍTAČE - Propopjení s technologickým procesem
Poznámky
Test analogového kanálu
č. k. → adr. 3
čas 5 µs
0 → adr. 4
čti status
s = 0?
ano
čti adr. 2
rotace o 4 bity
čti adr. 1
sluč
zpracuj
Poznámky
7-4
MIKROPOČÍTAČE - Propopjení s technologickým procesem
7-5
Poznámky
7.1.3 Osmibitový D/A převodník + 8 binárních výstupů
Analog.
čas
analogový
údaj
0 - 10 V
- 5 až + 5 V
D/A
adr. 1
Binární
adr. 2
Test D/A
Poznámky
1x8
+
8 bin
.
.
.
bin. výstupy
TTL
Test bin.
hodnota → adr. 1
hodnota → adr. 2
čas pro změnu
čas pro změnu
MIKROPOČÍTAČE - Propopjení s technologickým procesem
7-6
Poznámky
7.1.4 Dvanáctibitový D/A převodník
7
0
adr. 1
XXXX
11
XXXX
8
D/A
adr. 2
XXXX
0 - 10 V
-5÷+5V
1 x 12 bit
15
0 0 0 0
0 0 0 0
Poznámky
anal.
výstup
8
7
0
X X X X X X X X
X
X X X
1 1 1 1
1 1 1 1
255
X X X X
X X X X
údaj pro adr. 1
1 1 1 1
0 0 0 0
0 0 0 0 3840
MIKROPOČÍTAČE - Propopjení s technologickým procesem
7-7
Poznámky
číslo and 255 → DB
číslo and 3840 → HB
rotace HB
DB → adr. 1
HB → adr. 2
čas
Poznámky
(pro adr. 1)
MIKROPOČÍTAČE - Propopjení s technologickým procesem
7-8
Poznámky
7.1.5 Obvod binárních vstupu/výstupu



adr.1
1
adr.2
IN
Bin.
1
V/V
adr.3



adr.4
OUT
adr.5
24
OUT
7.2 STANDARDNÍ ROZHRANÍ RS232C
Je určeno pro styk osobního mikropočítače třídy PC s jiným počítačem nebo zařízením s
obousměrnou komunikací, americká norma RS 232 C, evropská V.24 a V.28.
DATOVÝ OKRUH
PŘENOSOVÝ
OKRUH
S2
A
Poznámky
UZD
D
UZD
KZD
S1
KZD
S1
S2
B
MIKROPOČÍTAČE - Propopjení s technologickým procesem
7-9
Poznámky
Sériový datový okruh
Sériově, přenášet postupně o sériovém datovém okruhu koncových zařízení datového
okruhu. Přenosový okruh se dvěma ukončujícími zařízeními přenosu dat (UZD). Odlehlost,
typ a druh přenosového okruhu. Pro velmi malé vzdálenosti do (15m) lze datový okruh
vynechat a obě koncová zařízení spojit přímo (nulový modem). CANNON s 25, CANNON
s 9 špičkami, KZD se špičkami, UZD konektor s dutinkami.
Malá varianta jednokanálový asynchronní přenos dat. Neumožňuje zjistit stav zařízení a
nemůže zajistit potvrzení, jen programově.
Nejčastější je střední varianta - jednokanálový synchronní nebo asynchronní přenos dat. Má
prostředky pro zjištění stavu přenosu i k potvrzení na větší vzdálenosti s modemem i krátké
vzdálenosti přímo mezi dvěma koncovými zařízeními.
Velká varianta má všechny možnosti dané tímto standardním rozhraním.
aplikace - nejtypičtější variantu uvádí obr.
K
KZ
D
D
KABEL
K
D
UZD
PŘENOSOVÝ
OKRUH
KZD
Poznámky
K
D
KABEL
K
D
UZD
Standardní
MIKROPOČÍTAČE - Propopjení s technologickým procesem
7 - 10
Poznámky
Standardní provedení sériového rozhraní
Nejběžnější - střední skupinu je kabel dvanáctižilový se stíněním, délka nemá přesáhnout 15
m.
SG - signálová zem
TD - vysílaná data
RD - Receive Data - přijímaná data
RTS - výzva k vysílání
CTS - pohotovost k vysílání
DSR - pohotovost ukončujícího zařízení
DTR - pohotovost koncového zařízení
DCD - detektor koncového zařízení
RI - indikátor volání
KZD
K
D
KABEL
K
NULOVÝ
MODEM
K
KZD
Poznámky
K
D
KABEL
MIKROPOČÍTAČE - Propopjení s technologickým procesem
7 - 11
Poznámky
Realizace přímého propojení typu KZD-KZD
Nulový modem má dvě základní provedení. Třídrátové a úplné zapojení.
Třídrátový nulový modem
Úplný nulový modem
Základním stavebním kamenem adaptéru obvod 8250 UART ze šířky kmitočtového pásma,
ale přizpůsobení se týká i úrovně výstupních signálů a impedance na rozhraní S1. Linkovou
jednotku, obvody řízení slouží modemu s koncovým zařízením, v našem i speciální obvody
zajišťují kompresi a odolnost proti chybám. Komprese dat znamená, že se delší posloupnost
nul nebo jedniček nepřenáší celá, ale nahradí informací o stavu a délce jeho trvání.
Chybovou odolnost zabezpečují cyklické kódy, vstupní data kóduje do pseunáhodné
posloupnosti, a tak znemožňuje nepovolané osobě zjistit obsah zprávy. Pro vyšší rychlost
přenosu dat i korektor - kompenzuje nedokonalosti telefonních okruhů.
U odlehlejších zařízení sériovým rozhraním RS 232 C se neobejdeme bez UZD zařízení
zvaného modem, modulátor a demodulátor - převést data z koncového zařízení na
takovou formu datového okruhu převedením dvouhodnotového číslicového signálu na
Poznámky
MIKROPOČÍTAČE - Propopjení s technologickým procesem
7 - 12
Poznámky
signál přenosný telefonním kanálem. Modulací se tedy signál z počítače převádí na
střídavý analogový signál, jehož kmitočty spadají do uvedeného pásma. Demodulace je
proces přesně opačný.
Blokové schéma modemu
Všechny vývody obvodu 8250 jsou TTL kompatibilní. Napěťové úrovně pro zobrazení
logických úrovní jinak (úroveň H představuje napětí v rozmezí - 3 V až - 15 V úroveň L
napětí v rozmezí + 3 V až + 15 V, je součástí adaptéru konvertor mezi TTL a zobrazením
na tomto rozhraní. Doporučováno je zapojení podle obr. 12.11.
Poznámky
MIKROPOČÍTAČE - Propopjení s technologickým procesem
7 - 13
Poznámky
7.2.1 Přenosy na větší vzdálenost
Konvertor RS 232 / RS 485 převádí nejužívanější rozhraní RS 232 s omezeným dosahem
(řádově metry) na rozhraní RS 485 s diferenciálním přenosem signálu a s výrazně delším
dosahem (řádově stovky metrů). Řízení třetího stavu RS 485 je odvozeno od signálu RTS.
Signály DSR a CTS jsou staticky ošetřeny.
Konvertor RS 232 / proudová smyčka převádí nejužívanější rozhraní RS 232 s omezeným
dosahem (cca 10 m) na proudovou smyčku s vysokou odolností proti rušení. Přenos je
úplně duplexní, nevyžaduje SW řízení. Dosah stovky metrů.
Proudovou smyčku lze používat při přenosech dat v průmyslovém prostředí s velkým
rušením...
Vysílač konvertoru proudové smyčky je aktivní. Přijímač konvertoru proudové smyčky je
pasivní, galvanicky oddělený od linky. Konvertor staticky ošetřuje signály CTS a DSR.
Poznámky
MIKROPOČÍTAČE - Propopjení s technologickým procesem
7 - 14
Poznámky
Při použití dvou CONV 1 proti sobě dojde ke galvanickému oddělení protilehlých stanic.
RS - 232 je digitální rozhraní, u kterého se nepředpokládá komunikace na vzdálenost delší
než 15 m a rychlost vyšší než 20 000 bps. (Všichni ho sice používají na větší vzdálenosti a
větší rychlosti, ale 15/20 000 je norma). Komunikace se provádí po 25 vodičích, z nichž
každý má svůj vlastní úkol. RS-232 je určen pro synchronní i asynchronní komunikaci.
7.2.2 Časová synchronizace signálů
RS 232 C ≈V24 s par. V28
Datový okruh
Přenosový okruh
KZ
UZ
1
DCD detektor nos. signálu
2
RD
přijímaná data
3
TD
vysílaná data
4
DTR pohotovost KZ
5
SG
signálová zem
6
DSR
pohotovost UZ
Poznámky
UZ
KZ
MIKROPOČÍTAČE - Propopjení s technologickým procesem
Poznámky
7
RTS
výzva k vysílání
8
CTS
pohotovost k vysílání
9
RI
indikátor volání
Poznámky
7 - 15
MIKROPOČÍTAČE - Propopjení s technologickým procesem
Poznámky
RS 422/485
Poznámky
7 - 16
MIKROPOČÍTAČE - Propopjení s technologickým procesem
7 - 17
Poznámky
RS 485 standardní liniové zapojení
KZ
KZ
KZ
CT
CT
KZ
RS 485 standardní kruhové zapojení
Poznámky
KZ
MIKROPOČÍTAČE -PLC ( PA ) SYSTÉMY
8-1
Poznámky
8
PLC ( PA ) SYSTÉMY
Programovatelný automat je uživatelský programovatelný řídicí systém přizpůsobený pro
řízení průmyslových a technologických procesů nebo strojů. Nejčastěji se označuje zkratkou
PLC (Programmable Logic Controller). Česká zkratka, která se teprve začíná používat, je
PA (Programovatelný automat).
Původně byly navrženy k řešení úloh logického řízení, často jako přímá náhrada pevné
reléové logiky.
V současných aplikacích se zvyšuje podíl úloh regulačního typu, monitorování i úloh
měření.
8.1 PA se skládá z
•
centrální procesorové jednotky,
•
systémové paměti,
•
uživatelské paměti,
•
vstupních a výstupních jednotek pro připojení řízeného systému,
•
komunikačních jednotek pro komunikaci se souřadnými i nadřazenými řídicími
systémy.
Navzájem jsou propojeny systémovou sběrnicí.
Poznámky
MIKROPOČÍTAČE -PLC ( PA ) SYSTÉMY
8-2
Poznámky
Řídicí algoritmy jsou realizovány uživatelským programem, který může být zapsán
v různých programovatelných jazycích a je uložen v uživatelské paměti PA.
Obsahuje posloupnost instrukcí, kterou procesor vykonává cyklicky. Chování PA je tedy
dáno v podstatě zaměnitelným programem, u reléových systémů bylo chování určeno
strukturou zapojení, která byla nezměnitelná.
8.2 Třídění PA- dle různých hledisek
Kompaktní PA (KPA) - menší - měly původně pevně danou konfigurací integrovaných
modulů a byly uzavřeny v jednom pouzdře. Pouzdro se montuje přímo do výrobku, je
snaha o určitý stupeň modularity a je možno i u malých aplikací přizpůsobit sestavu.
Typickými aplikačními oblastmi jsou např. řízení klimatizačních zařízení a technického
vybavení v budovách, ovládání garážových vrat, zvedacích plošin, mycích linek, prodejních
automatů, balicích strojů apod. KPA mohou ale sloužit
i jako komponenty
v distribuovaných řídicích systémech.
Modulární PA jsou vhodné pro automatizační úlohy středního a velkého rozsahu. Je tvořen
v podstatě pevným procesorovým jádrem s napájecím zdrojem umístěným v rámu, ke
kterému se přes sběrnici připojují místní i vzdálené periferní jednotky. Kromě i analogové
vstupně výstupní jednotky bývá možnost volby jednotek pro rychlé čítání, polohování,
nejrůznější typy komunikace, regulaci, i pro speciální funkce. U úloh většího rozsahu je
důležitá problematika MMI (Man Machine Interface), tedy rozhraní mezi člověkem a
strojem, případně technologickým procesem. Mělo by být dostatečně uživatelsky vstřícné
s vizualizací a diagnostikou chyb. Nezbytným doplňkem MPA jsou také ovládací panely,
datové terminály a vizualizační prostředky.
Poznámky
MIKROPOČÍTAČE -PLC ( PA ) SYSTÉMY
8-3
Poznámky
Úloha programovatelného automatu v systémech řízení
Při dopředném řízení působí PA na řízený objekt jednosměrně, jen jej ovládá a nekontroluje
dosažený stav ručním řízením, člověk - operátor. Může plnit úlohy i v automatizovaném,
automatickém systému řízení, kdy povely pro automat poskytuje nadřazený řídicí systém.
Při zpětnovazebním řízení získává řídicí systém zpětnou informaci o stavu řízeného objektu.
Zpětnovazební řízení je typické pro regulační úlohy. Za zpětnovazební řízení ale můžeme
považovat i logické řízení, při kterém na objekt působíme jen dvouhodnotovými povely
typu „vypni - zapni“ a zpracováváme i zpětnovazební informace dvouhodnotového
charakteru. I zpětnovazební řízení může být ruční, automatizované nebo plně automatické.
Poznámky
MIKROPOČÍTAČE -PLC ( PA ) SYSTÉMY
Poznámky
8.3 BLOKOVÉ SCHÉMA TYPICKÉHO PA
Poznámky
8-4
MIKROPOČÍTAČE -PLC ( PA ) SYSTÉMY
8-5
Poznámky
8.4 POČÍTAČOVĚ ŘÍZENÁ VÝROBA (CIM)
Uplatnění programovatelných automatů v pyramidě řízení podniku - na všech úrovních
jedna až tři, hlavní oblast uplatnění na úrovni jedna.
Plánování výrobních a
podnikových zdrojů
4.
MRP/ERP
Řízení/sledování výroby
3.
MES
2.
SUPRVIZE/SCADA
PŘÍMÉ ŘÍZENÍ (PLC, DCS, RTU, aj.
1.
MRP/ERP - Manufacturing/Enterprice Resource Planning
MES - Manufacturing Execution System
SCADA - Supervisory Control And Data Acquisition
PLC - Programmable Logic Controller
DCS - Digital Control System
RTU - Real Time Unit
Poznámky
Řízení/sledování
výrobní buňky
Řízení stroje/
zařízení
MIKROPOČÍTAČE -PLC ( PA ) SYSTÉMY
8-6
Poznámky
8.5 Zařazení programovatelného automatu mezi řídicí systémy
Relé a kontakty versus PA
Relé, stykače a tlačítka jsou v některých případech nenahraditelné. Rozsáhlejší funkce se
kontaktní a reléovou technologií již nerealizují, svěříme je důsledně programu PA.
Regulátory versus PA
Rozdíl se postupně stírá, pracují číslicově a hranice je neostrá. Výrobci PA postupně
expandují do aplikačních oblastí dosud vyhrazených pro regulátory. Tradiční výrobci
regulátorů své PA uzpůsobují i pro logické řízení. Např. inteligentní regulátory, které mají
přidány logické funkce schopny pracovat v různých režimech.
Personální počítače a versus PA
Přímé řízení technologických procesů standardním PC - přinejmenším riskantní a
diskutabilní - komerční elektronika.
Průmyslové počítače - problémem je vysoká cena. Standardním řešením je použití
distribuovaného systému, kdy osobní počítač je použit ve velínu nebo na dispečerském
pracovišti a do drsného průmyslového prostředí jsou předsunuty PA. Někteří výrobci
nabízejí počítačový modul kompatibilní s PC.
Poznámky
MIKROPOČÍTAČE -PLC ( PA ) SYSTÉMY
8-7
Poznámky
8.6 Hlavní charakteristika PA
Výhody : rychlá realizace, spolehlivost, odolnost a diagnostika. Snadná přizpůsobitelnost
řešení (nekončící změny v zadání, dodatečné požadavky, schopnost komunikace
v podřízené úrovni, v souřadné úrovni i směrem k systémům nadřízeným.
Nevýhody: prodloužení odezvy, odezva PLC bývá delší - je dána dobou průchodu
programu. Nespojitost v čase - algoritmus je vykonáván cyklicky. Uvnitř intervalu nereaguje
na změny vstupních hodnot. Může být příčinou hazardů a chyb, ztráty krátkého vstupního
impulsu, nevyhodnocení hrany signálu apod. Postupnost zpracování - program PLC je
vykonáván v pořadí, v jakém je zapsán.
8.7 Typy PA
8.7.1 Hledisko konfigurace PLC
Skutečnou sestavu volí uživatel tak, aby co nejlépe přizpůsobil svůj PLC požadavkům
řešené úlohy. Některé typy modulů mohou chybět, jiné se mnohonásobně opakují.
V krajním případě čistě binární (logický) systém nebo naopak jako výhradně analogový.
Sestavy čistě vstupní, systém pro měření, předzpracování dat i čistě výstupního. Aplikace
bez fyzických vstupů a výstupů, jen jako inteligentní, programovatelný komunikační
adaptér.
8.7.2 Hledisko velikosti a konstrukčního uspořádání
Mikro PLC
Poznámky
MIKROPOČÍTAČE -PLC ( PA ) SYSTÉMY
8-8
Poznámky
Nabízejí pevnou sestavu vstupů a výstupů, kompaktní provedení, malé rozměry a nízkou
cenou. Jejich funkční a programátorský komfort je obvykle redukován na nezbytné
minimum, komunikační možnosti mnohdy chybějí.
Kompaktní PLC
Nabízejí určitou i když omezenou variabilnost. Uživatel může k základnímu modulu připojit
jeden nebo několik přídavných modulů z omezeného sortimentu s pevnou kombinací vstupů
a výstupů, např. modul s 8 binárními vstupy a 8 binárními výstupy, modul rychlých čítačů,
analogový vstupní a výstupní modul, modul regulátoru, apod.
8.7.3 Modulární PLC
Větší volnost ve volbě konfigurace, možnost zasouvat libovolné moduly, jeden systém může
být tvořen několika rámy, rozšiřovací moduly mohou být připojeny na vzdálenosti stovek
metrů.
8.7.4 Programovatelné pracovní stanice
Sdružují funkce PLC a operátorského panelu.
Výhody - integrace funkcí, praktické konstrukční provedení, výhodný poměr cena/výkon,
široké možnosti uplatnění i tam, kde bylo použití tradičního PLC s odděleným operátorským
panelem dosud cenově nedostupné.
Nejvýznamnější světoví výrobci (řazeno abecedně): ABB, Allen-Bradley, AEG, B+R,
Eberle, Klöckner Moeller, Festo, GE, H+B, Idec, Matsushita, Mitsubishi, Omron, Saia,
Siemens Telemechanique.
Poznámky
MIKROPOČÍTAČE -PLC ( PA ) SYSTÉMY
8-9
Poznámky
8.8 Konstrukční a elektrické provedení PA
Pouzdro, základní modul, napájení
Kompaktní PA jsou umístěny buď v jednom pouzdře nebo dovolují v malé míře rozšíření.
Většinou se montují přímo na lištu DIN do rozvaděče.
V základním modulu modulárních PA (rám, nosná deska, lišta) bývají umístěny: centrální
procesorová jednotka (CPU), napájecí jednotka, systémová a napájecí sběrnice a několik
volných pozic pro zásuvné periferní jednotky. Pokud počet volných pozic v základním
modulu nepostačuje, bývají k dispozici rozšiřující moduly. Rozšiřující moduly se připojují
pomocí tzv. expanzní jednotky.
Centrální procesorová jednotka - je jádrem celého PA, určuje jeho výkonnost, je
jednoprocesorová nebo i víceprocesorová. U víceprocesorových systémů bývají použity
matematické koprocesory nebo vstupně výstupní procesory, někdy též komunikační
procesory,
pro
urychlení
práce
používá
rychlý
bitový
procesor.
Důležitým
charakteristickým parametrem CPU je operační rychlost posuzovaná podle tzv. doby cyklu,
což je doba zpracování 1000 (1k) logických instrukcí. Pohybuje se řádově od desítek
milisekund až k desetinám milisekund.
Paměťový prostor se může dělit na paměť uživatelskou, systémovou a paměť dat. Do
uživatelské paměti se ukládá uživatelský program. Tato paměť bývá typu EPROM nebo
EEPROM s kapacitou řádově od desítek kB až po jednotky MB u modulárních PA, u
kompaktních PA spíše v desítkách kB. V systémové paměti je umístěn systémový program.
Tato paměť bývá rovněž typu EPROM. V samostatné jednotce může být umístěna přídavná
Poznámky
MIKROPOČÍTAČE -PLC ( PA ) SYSTÉMY
8 - 10
Poznámky
uživatelská paměť. V paměti dat typu RAM jsou umístěny uživateli dostupné registry,
zápisníkové registry, čítače, časovače a většinou i vyrovnávací registry pro obrazy vstupů a
výstupů. Počet těchto registrů výrazně ovlivňuje možnosti PA. Adresovatelný prostor
vymezený pro vstupy/výstupy omezuje počet připojitelných periferních jednotek.
Důležitým parametrem jsou rozsahy čítačů
a časovačů, jeden nebo i více sériových
komunikačních kanálů. Většina automatů má dostupné i hodiny reálného času, případně i
s kalendářem.
8.9 Binární vstupní jednotky
Binární vstupní jednotky slouží k připojování prvků pro tvorbu vstupů s dvouhodnotovým
charakterem výstupního signálu např. tlačítka, přepínače a koncové spínače.
Vstupní binární modul zajišťuje většinou tyto funkce:
•
ochranu všech konkrétních vstupů PA před poškozením či zničením
•
chybným napětím či přepětím odfiltrování krátkodobých rušivých impulsů (např.
pomocí zpoždění signálu)
•
galvanické oddělení obvodů vstupního modulu od centrální jednotky (pomocí
optočlenů)
•
signalizace stavu vstupů (pomocí LED diod na čelním panelu jednotky).
U některých automatů je připraven prostor pro popis jednotlivých vstupů. Nejčastější
jednotky pro vstupy stejnosměrné - v rozsazích 5 V, 12 V, 24 V, 48 V, střídavé v rozsazích
24 V, 48 V, 115 V a 230 V.
Poznámky
MIKROPOČÍTAČE -PLC ( PA ) SYSTÉMY
8 - 11
Poznámky
8.10 Binární výstupní jednotky
Binární
výstupní
jednotky
slouží
k připojování
nejrůznějších
akčních
členů
s dvouhodnotovým charakterem vstupního signálu, např. různá optická i akustická
signalizační zařízení, cívky relé, stykačů, solenoidových ventilů, elektromagneticky
ovládaných pneumatických či hydraulických rozvaděčů.
Binární výstupní jednotka většinou plní tyto funkce:
•
galvanické oddělení signálu přicházejícího z CPU od signálu předávaného z výstupní
jednotky akčním členům (pomocí optočlenů)
•
zesílení signálu na potřebnou úroveň
•
ochrana výstupů před zkratem
•
signalizace stavu výstupů (pomocí LED diod).
Dodávají se v různých variantách a provedeních:
•
pro stejnosměrné spínané napětí (nejčastěji 24 V, 48 V) se spínacími prvky
tranzistorovými typu NPN i PNP
•
pro střídavé spínané napětí 24 - 250 V AC, 24 - 48 V AC, 115 ÷ 230 V se spínacími
prvky triakovými
•
pro stejnosměrné i střídavé napětí (do 250 V AC/60V DC) se spínacími prvky
reléovými.
Poznámky
MIKROPOČÍTAČE -PLC ( PA ) SYSTÉMY
8 - 12
Poznámky
8.11 Kombinované jednotky binárních vstupů a výstupů
V sortimentu binárních jednotek bývá i kombinovaný modul binárních vstupů a výstupů.
Může být využit na optimální doladění sestavy, ale především je určen k multiplexovanému
buzení a snímání matice tlačítek do rozsahu 8 x 8 nebo až 16 pater plochých zadávacích
přepínačů.
Analogové vstupní jednotky
Analogové vstupní jednotky zprostředkují kontakt programovatelného automatu se
spojitým prostředím. Lze k nim připojit např. snímače teploty, vlhkosti, tlaku, síly, hladiny,
rychlosti, ale i inteligentní přístroje s analogovými výstupy. Důležitou součástí je A/D
převodník s rozsahem 8 nebo 12 bitů. Sortiment bývá široký, např. jednotky pro určité typy
čidel - pro termočlánky. U specializovaných jednotek je poněkud potlačena univerzálnost,
zato jsou optimálně přizpůsobeny svému určení a poskytují tak levnější a kvalitnější řešení.
Analogové moduly s galvanickým oddělením dovolují zvýšit odolnost systému proti rušení,
v některých situacích jsou principiálně nenahraditelné.
Analogové výstupní jednotky
Analogové výstupní jednotky slouží pro ovládání různých akčních členů či zařízení se
spojitým charakterem vstupního signálu, jako jsou např. spojité servopohony, frekvenční
měniče, ale třeba i ručkové měřící přístroje apod. Nezbytnou součástí je D/A převodník,
většinou mívá rozsah 8 nebo 12 bitů. Analogové výstupy jsou buď napěťové nebo
proudové. Proudové výstupy mohou být aktivní nebo pasivní. U aktivních nemusí mít
Poznámky
MIKROPOČÍTAČE -PLC ( PA ) SYSTÉMY
8 - 13
Poznámky
připojený akční člen svůj zdroj proudu a je napájen přímo z analogového proudového
výstupu automatu. Připojený akční člen má v tomto případě omezený maximální odpor.
Čítačové jednotky
Rychlé čítače, odměřovací a polohovací jednotky jsou určeny k měření a řízení polohy,
k řízení dráhy a rychlosti pohyblivých částí strojů a manipulačních mechanismů. Čítačové
jednotky jsou určeny k čítání pulsů, jejichž perioda je srovnatelná nebo kratší, než je smyčka
programu PA.
Polohovací jednotky
polohovací jednotky jsou určeny pro snímání polohy a řízení jedné nebo dvou souvislých os,
případně pro řízení pohybu po naprogramované dráze. Parametry pohybu jsou zadávány
programově z PA.
Komunikační jednotky
Důležitou vlastností PLC je schopnost komunikovat se vzdálenými moduly vstupů a
výstupů, s podsystémy i nadřízenými systémy, s operátorskými panely a s jinými
inteligentními přístroji, s počítači a s jejich sítěmi a tak vytvářet distribuované systémy.
Komunikační jednotky většinou rozšiřují počet asynchronních sériových komunikačních
kanálů U některých systémů jsou k dispozici i jednotky dálkových přenosů umožňující
dálkové přenosy dat přes modem nebo přes radiomodem (40 km), RS 232 (15 m), RS 422,
RS 485 i 2 km.
Speciální jednotky
Poznámky
MIKROPOČÍTAČE -PLC ( PA ) SYSTÉMY
8 - 14
Poznámky
Mohou mít specializované moduly pro řešení regulačních úloh (např. regulátor PID) nebo
pro řešení úloh s využitím fuzzy logiky a fuzzy regulace. Kuriozní moduly, např. Klöckner Moeller dodávají moduly pneumatických výstupů. Pneumatické ovládání má význam pro
výbušné prostředí. Firma Allen Bradley má jednotku pro vstup z CCD kamery.
Počítačové jednotky
Počítačový modul, kompatibilní s PC. V něm lze standardními počítačovými prostředky
řešit úlohy, které nejsou pro PLC typické, např. složité a rychlé výpočetní algoritmy,
grafické a geometrické úlohy, zpracování a archivace velkého množství dat, databázové
úlohy, výkonné komunikace, napojení PLC do počítačových sítí, připojení standardních
počítačových periferií, paměťových karet PCMCA, apod.
Poznámky

Podobné dokumenty

Perspectives of Using Motorola 8-bit Microcontrollers for

Perspectives of Using Motorola 8-bit Microcontrollers for MC68HC11 jsou osmibitové jednočipové mikrořadiče firmy Motorola. Přímo na čipu jsou poskytovány základní periferie jako je osmi-kanálový analogově digitální převodník s rozlišením 8 bitů a rozhraní...

Více

Kdyš Otar odełel

Kdyš Otar odełel naučit gruzínsky a Marina nerada mluvila rusky, protože to pro ni byl jazyk útisku. Hlavní předností zkoušek bylo, že jsme stanovili, kdo kdy bude mluvit jakým jazykem. A pro mě to bylo velmi užite...

Více

16-bitový mikrokontrolér MC9S12NE64

16-bitový mikrokontrolér MC9S12NE64 záchytnými/komparačními registry lze měřit časy příchodu externích událostí nebo naopak generovat výstupní průběhy podle předem nastaveného časovacího schématu. Další součástí modulu je tzv. pulsní...

Více

Programování I. - Střední průmyslová škola elektrotechniky a

Programování I. - Střední průmyslová škola elektrotechniky a On totiž není žádná myslící bytost, a proto nebudeme hovořit o postupu řešení, ale o algoritmu.

Více

Modem MRS32

Modem MRS32 Modemová jednotka MRS32 je určena k přenosu dat mezi zařízeními používajícími rozhraní RS232 telefonním kanálem v rozsahu hovorových frekvencí, dle doporučení V.23. Ze strany linky umožňuje modemov...

Více

zapisky v TEXu z roku 2007

zapisky v TEXu z roku 2007 Procesor obsahuje vektor přerušení který obsahuje informace o jednotlivých druzích přerušení a místa které obsahují instrukce k jejich obsluze. Operační systém typicky obsadí tyto místa vlastními i...

Více

PMSDR-popis instalace

PMSDR-popis instalace 14. Vytvořit novou skupinu: sudo groupadd pmsdrusb sudo usermod -a -G pmsdrusb

Více

Přehled nástrojů CASE na tuzemském trhu

Přehled nástrojů CASE na tuzemském trhu Computer Aided Software Engineering, tedy počítačová podpora softwarového inženýrství. Ta je v literatuře více zažitá, avšak pro účel naší práce se kloníme spíše k jinému, méně používanému významu....

Více

stavební návod: GENERÁTOR DATA A ČASU VTG

stavební návod: GENERÁTOR DATA A ČASU VTG Pro zdroj reálného času jsme použili osvědčený integrovaný obvod PCF 8583 (IO6). Tento integrovaný obvod počítá rok pouze jako jeden byte se stavem 0 až 3 (z důvodu nastavení 29.2. u přestupného ro...

Více

Návrh číslicových obvodů

Návrh číslicových obvodů paměť Programovatelný spoj RAM Programovatelný I/O

Více