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