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
Proč jsou vestavěné systémy v součastnosti tak oblíbené?
nyní vládne trend, kdy se snažíme co nejvíce věcí implementovat na jeden čip
vychází i z ekonomického pohledu: méně čipů = méně nákladů na výrobu
jsou všude kolem nás (od hodinek, přes pračky, ledničky, auta …)
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
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ěť
Direct Page - Registre
High Page - Špeciálne registre
Non voltaile - Uloženie zapezpeč. klúčov napríklad
Chvost - Obsahuje vektory prerušenia
Ram
statická, napájena ve všech režimech činnosti MCU
Od 0x0000 po 0x00FF
Jednobytová adresa s rýchlim prístupom
Pre často používané premenné
Od 0x0100 a viac
Datá s občasným prístupom
Možnosť secure
USB RAM
256B, CLK 2x
prístup do SIE čo je USB serial interface
určená pre alok. priestoru pre uloženie BDT, Buffer desc. table a endpoint bufferov
inak sa dá tiež využiť ako non-secure RAM
Flash
Uloženie programu s podporou In-Circuit a In-Application programming
64KB, 119 stránok po 512 B
Stránka je najmenšia mazatelná jednotka
Možnosť security, príkazové rozhranie
Automatický prechod do úsporného režimu
po resetu MCU je možno zapsat nejvýše 1x
Burst programovanie
Rýchlejšie vykonávanie programovania postupnosti bytov
Nábojová pumpa je zapnutá po celú dobu, zapínanie a vipínanie pri každom riadku flash
Ochrana pamäte
Znemožnuje zmeny v chránených blokoch
Určujeme hranicu tak že určíme najvyššiu nechránenú adresu
Pretože vektory prerušenia sú na konci presmerujeme ich
Zabezpečenie
Taktiež zapnutím security je možno predísť neaut. prístupu k obsahu pamäti
Bitom KEYEN zapneme či vipneme 8bitový klúč
Vipneme len zmazaním celej FLASH
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í
Základní princip sériové komunikace
bity jsou přenášeny po jediném vodiči postupně jeden za druhým
u paralelního přenosu je v jediném okamžiku k dispozici více bitů (každý na vlasním vodiči)
protože se bity objevují na jediném datovém vodiči postupně, je potřeba jednoznačně určit, v kterém okamžiku je na datovém vodiči hodnota kterého bitu
existují 2 základní přístupy
SCI = Serial Communication Interface
asynchronní sériové rozhraní
v mikrokontroléru HCS08 se jedná o plně duplexní systém (tj. současně lze data vysílat i příjmat)
sytém tvoří generátor hodinového signálu, modulu vysílače a modulu přijmače a podpůrných obvodů
výstup vysílače je vyveden na vodič označený TxD (transmit data), vstup přijmače je vyveden na vodič označený RxD (receive data)
podstatné jsou pro programátora registry SCI: datové, konfigurační a stavové
SPI = Serial Peripheral Interface
synchronní sériové rozhraní
rozhraní původně určené k připojování a komikaci s prefireními zařízeními (lze ho ale využí i ke komunikaci mezi mikrokontroléry)
umožňuje spojení point-to-point i vytvoření SPI sběrnice (k propojení více komponent)
plně duplexní rozhraní (v každém okamžiku vždy probíhá přenos oběma směry)
zařízení připojení přes SPI může být v jednou ze dvou režimů:
master
generuje synchronizační hodinový signál
inicializuje a řídí komunikaci přes SPI
na sběrnici SPI může být pouze jedno zařízení tohoto typu
zpravidla se jedná o mikrokontrolér
slave
komunikace probíhá způsobem vzájemné výměny obsahů posuvných registrů
Rozhraní IIC (I^2C)
synchronní sériové rozhraní
hlavním cílem je jednoduchost a levná implementace
specifikuje fyzickou podobu rozhraní, jeho elektrické charakteristiky a komunikační protokol
protokol typu master-slave komunikující způsobem half-duplex
tvoří ho jeden datový vodič(SDA) a jeden vodič pro přenos synchronizačního signálu(SCL)
ke sběrnici IIC lze připojit až 127 zařízení slave (dáno formátem adresy)
pokud neprobíhá komunikace, tak se master ani slave nijak neovlivňuje (SDA i SCL stav log. 1)
komunikace zahájí master sestupnou hranou 1→0 při SCL v log. 1
data jsou vzorkována při SCL=1, změna hodnoty dat při SCL=0
pro ukončení generuje master nástupnou hranu 0→1 při SCL v log. 1
Porty
mikrokontrolér je počítač, určený k tomu, aby vnímal své okolí a na základě programu je ovlivňoval
je zpravidla součástí nějakého systému, který má primárně jiné určen, než „jen“ být počítačem
vnímání okolí a jeho ovlivňování se děje nejčastějí přes jednoduchá dvoustavová rozhraní, které se združují do portů
porty jsou vyvedeny na pouzdro MCU - jedná se o skutečné rozhraní mezi MCU a dalšími obvody
vstupně-výstupní piny jsou sdruženy po osmi do portů
mnoho z nich sdílí vývod pouzdra s jinými periferiemi (když je periferie aktivní, nelze použít pin portu)
porty jsou pojmenovány písmeny abecedy, různé MCU mají různý počet portů
výstupní pin portu
umí udělat logickou 0 nebo 1 na vývodu pouzdra MCU
log. úrovně jsou reprezentovány napětím, jde o připojení určitého napětí na vývod MCU
log. 0 je napětí na úrovni země, log. 1 pak napětí na úrovni napájecího napětí
Pull up rezistor
rezistor, který definuje úroveň v případě, kdy je pin jinak „ve vzduchu“
lze jej zapnout uvnitř MCU
-
Analogově-číslicový 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
Zdroje
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