Toto je starší verze dokumentu!
Vestavěné systémy
Vestavěný systém je kombinace hardwaru a softwaru, jejímž smyslem je řídit externí proces, zařízení nebo systém. Jedná se vlastně o počítač, který je zabudován do systému, ale pro uživatele niní jako počítač viditelný. Často jsou navrženy tak, aby fungovaly i bez zásahu člověka. Důraz je kladen na:
reaktivnost, odezva na podněty v reálném čase
autonomie - činnost bez lidského zásahu
kritičnost - vliv odchylek od normálního chování na bezpečné plnění úlohy
Vlastnosti E.S. (Embedded System):
většinou omezená množina aplikačních systémů
typicky čtení, zpracování a řízení fyzikálních veličin
musí být spolehlivé, bezpečné a zabezpečené
musí být efektivní
Oproti univerzálním počítačů se u E.S. setkáváme s:
jeden program po celý život (VS je specifický pro aplikaci)
uživatel by neměl tušit, že pracuje s počítačem
hlavní interakce nemusí být s člověkem (např. čidla pro snímání prostředí, ovládání akčních členů)
startuje sám bez lidského zásahu
Typická struktura E. S.
Microprocesory μPs
Mikropočítače μC
μP plus příslušné podpůrné obvody (periferní I/O komponenty a pamět)
při malém počtu V/V obvodů ho nazýváma mikrokontrolér
vhodné k řízení vnějších zařízení v aplikacích vyžadujících minimum komponent
dělí se podle architektur
Procesor počítače se skládá z řídící a výkonné (aritmeticko-logické) jednotky. Řídící jednotka zpracovává jednotlivé instrukce uložené v paměti, přičemž jejich vlastní provádění nad daty má na starosti aritmeticko-logická jednotka. Vstup a výstup dat zajišťují vstupní a výstupní jednotky.
Programovací model HCS08
CPU
Von Neumannovská architektura
sběrnice: 8b data + 16b adresa
instrukční sada: CISC, střadačová architektura
registry
instrukční sada
adresovací režimy
inherent INH
relative REL
immediate IMM
direct DIR
extended EXT
indexed
typy instrukcí
pro přenos dat (load/store): LDA #5; MOV #5, 100
pro práci s daty (aritmetické, logické …): AND op, ADD op
pro řízení toku programu (skokové): JMP op
speciální: NOP, WAIT
Režimy činnosti
RUN
Active background
ladění aplikace, bootloader
aktivace více způsoby: např.log. 0 při nástupní hraně hodin RESET*
užití např. k (pře)programování aplikace před vstupem do Run
Wait
CPU zastaven (snížení spotřeby), systémové hodiny běží, plná funkce napěťového regulátoru
aktivován instrukcí WAIT
po provedení s přepne CPU do nízkopříkonového režimu
ukončení při vzniku přerušení
Stop
zastaveno CPU, BUSCLK
Stop 3 - uchovává obsah RAM, USB RAM, registrů; možný rychlý přechod do Run
Stop 2 - uchovává obsah RAM, USB RAM
Paměť
RAM, USB RAM
Flash
registry
Ram
statická, napájena ve všech režimech činnosti MCU
obecně využitelná
USB RAM - 256B - určená primárně k alokaci prostoru pro uložení BDT (Buffer Descriptor Table) a endpoint bufferů
Flash
primárně určená pro uložení programu E.S.
kapacita (JM60): 60 912 B ~ 119 stránek po 512B
stránka je nejmenší mazatelná stránka
příkazové rozhraní
možnost zabezpečení dat (security)
automatický přechod do úsporného režimu
po resetu MCU je možno zapsat nejvýše 1x
Podprogram vs. přerušení
Standratní programová smyčka:
pokud je volán podprogram, je předáno řízení hlavnímu programu až po provedení celého podprogramu (voláním return)
při přerušení je podprogram volán instrukcí a podgram obsluhy přerušení je zase vyvolán hardwarově
zdroj přerušení se prezentuje aktivní úrovní
např. při mimořádné události vyvolá hlavní program přerušení, žádost je za definovaných podmínek akceptovaná a řízení předáno přidem připravené obslužné rutině přerušení
Číslicově-analogový převodník (ADC)
analogový vstup představují signály ze spojitých snímačů (teplota, tlak, osvětlení, odpor, napětí/proud)
důležitá je zpětná vazba
-
předvod aproximačním AD převodníkem je děj, který trvá určitou dobu; proto lze vysledovat fáze
AD převodník
Časovač/čítač
čítač je speciální registr, který kromě funkcí jako je čtení a zápis hodnoty zvyšuje a snižuje svoji hodnotu o jedničku při každé periodě hodinového signálu; používán je pro čítání událostí
časovač je čítač, jehož čas je zvyšován o jedničku hodinovým signálem mikropočítače; účelem je odměřovat čas
-
čítač/časovač realizuje časovou základnu a je jádrem systému časování
cyklus čítače je dán periodou budícího signálu a počtem bitů čítače - při přetečení je generován příznak, který lze využít při generování periody impulsního signálu
často je třeba určit čas, kdy došlo k nějaké události - přečteme si aktuální hodnotu běžícího čítače a vypočteme časový údaj
výstupem jednotky záchytu hrany je vývod MCU, kde je přiveden signál s logickými úrovněmi. Lze ji nastavit na detekci nástupné nebo sestupné hrany
PWM modul lze využít jako jednoduchý Č/A převodník
Generátor hodin
vestavěný systém je soustava vzájemně propojených bloků, ty musí být v zájemné součinnosti - k synchronizaci slouží generátor hodinového signálu (v jeho rytmu běží komunikace mezi jednotlivými moduly, jádro provádí instrukci za instrukcí)
u MCU Motorola HC08 má hodinový signál na starosti modul CGM (Clock Generation Module) - jako zdroj signálu se využívá oscilátor
05 |
Celé jméno | OK | !!! |
Tom Ofeig |  | |
Martin Pavelka |  | |
| 2 | |
Diskuze
–mikrokontroler–
architektura mikrokontroleru (na prikladu HCS08, strucne registry, typy operaci, adresovaci rezimy + jednoduchy priklad pro kazdy rezim, typy instrukci) rezimy mikrokontroleru (duvod zavedeni + strucny popis jednotlivych rezimu (kdy se pouziva?) strucne o pameti (rozdeleni + adresovy prostor, FLASH/RAM - neco malo ze skript (nejzakladnejsi body) ) podsystem preruseni (preruseni vs podprogram, vektory preruseni, obsluha PZ, druhy preruseni(soft/hardw) + neco malo o nich)
–rozhrani–
sbernice SCI/SPI/IIC strucne, uvest zakladni princip porty - k cemu slouzi + kratce o nich, pull-up rezistory, sdileni, preruseni pri zmene, …
–prevodniky–
AD prevodnik (jak funguje), casovac (citac/casovac, PWM, zachyt hran), zdroje hodin, popsat PLL strucna zminka o OS pro miktrokontrolery
Pozn. o periferiich jsme se moc nezminovali, spise ma na mysli klavesnici, display, externi Flash pamet, … Tady bych spis jenom kratce shrnul zakladni periferii, co lze pripojit, popr. mozno jeste o nich neco napsat, jak je pripojit, jak funguji, pokud to pujde, ale nezabyhal moc do detailu