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

μP je základní procesorová jednotka (CPU) na čipu

komponenty CPU

ALU, instrukční dekodér, registry, řadič, sběrnice

jsou vhodné pro zpracování informací/dat

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

RISC/CISC

CISC se jednoduše programuje a efektivně využívá paměť; dnes už ztrací na významu

RISC realizuje větší výpočetní výkon za nižší cenu s jednodušším instrukčním souborem

množina instrukcí redukovaná na 2 základní instrukce pro pamětové operandy LOAD a STORE

von Neumanovská nebo Hardvarská architektura

Von Neumannova architektura popisuje počítač se společnou pamětí pro instrukce i data. To znamená, že zpracování je sekvenční. Druhým pohledem je Harvardská architektura (má jednu pamět pro program a druhou data), která je představitelem paralelního zpracování (nejedná se o vlastní paralelismus).

Von Neumannova architektura:

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.

periferní jednotky μC (příklady)

CPU

programová paměť

datová pamět (SRAM)

nulovací obvod, watchdog

číslicové V/V, analogové V/V

časovače, obvod reálného času

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

ADD, AND, SUB, SWI (soft. přerušení)

operandy

kostanta # (#64, #$40 (hexa), #%0100000 (bin))

adresa (100, $F0, $FB000)

adresovací režimy

inherent INH ← reřim bez adres

MUL: X:A ← (X) * (A)

relative REL

BEQ rel: Branch if equal (if Z = 1)

immediate IMM

ADD #2: A ← A + 2

direct DIR

BSET 0, 31: Set Bit n in memory (Mn ← 1)

extended EXT

ADD $0200

indexed

LDA ,X: No Offset

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

„plný“ běh aplikace

aktivován po resetu

CPU začíná provádět kód, kde první instrukce je uložená v reset vektoru

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ě

probíhá nesynchronizovaně → nelze přesně určit, kdy se předá řízení

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í

adresa instrukce je uložena ve vektoru přerušení - zpravidla je to odkaz do tabulky adres nebo tabulky prvních instrukcí přerušovacích rutin

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

Synchronní sériový přenos

spolu s daty je přenášen i hodinový signál

hrany hodinového signálu určují, kdy se objeví další bit na datové vodiči nebo kdy je možné bezpečně sejmout hodnotu z datového vodiče

v celé soustavě je jeden zdroj časového signálu

Asynchronní sériový přenos

hodinový signál se nepřenáší, ale přímač si ho generuje sám

je potřeba zajistit dostatečnou přesnost generátoru hodinového signálu v přijmači a prostředky, kterými je možné generátor hodinového signálu přijímače synchornizovat s generátorem vysílače

na začátku přenosu musí dojít k synchronizaci hodin vysílače a přijmače (změnou úrovně).

Princip: Vodič je v klidovém stavu (např. log1), přenos je zahájen změnou klidového stavu (na log0), předem dané délky (zpravidla 1 bit, tzv. start bit), poté jsou posílána samotná data, na konci přeneseného slova následuje volitelný paritní součet a ukončení přenosu (stop bit).

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

obvykle to jsou periferie, se kterými master komunikuje (master určuje se kterým slave bude komunikovat)

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

zahájení převodu

děje se zápisem do registru

jsou 2 možnosti zahájení

softwarové - zápis do registrů (převod se realizuje hned)

hardwarové - dojde k dosažení modulo registru při sčítání čítače reálného času (napřed se musí nastavit perioda vzorkování, až pak začne převod)

provádění převodu

ukončení převodu (výsledek je k dispozici, nebo byl převod „násilně“ ukončen)

výsledek je k dispozici v registrech ADCRH a ADCRL

AD převodník

typicky má 3 části

dolnopropusní filtr

Track/Hold

AD převodník

převádí anslogový vstup na číslicový výstup

Č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

proměnná střída impulsů je vyhodnocena jako proměnné analogového napětí úměrné hodnotě aktuální hodnotě střídy

pulzně šířková modulace PWM je technika, kdy je generován impulsní průběh s konstantní periodou a proměnnou střídou. Signál tohoto typu je využíván hlavně pro řízení motorů

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

IMP opory: https://wis.fit.vutbr.cz/FIT/st/course-files-st.php/course/IMP-IT/texts/IMP_opora_cast1.pdf https://wis.fit.vutbr.cz/FIT/st/course-files-st.php/course/IMP-IT/texts/IMP_opora_cast2.pdf Přednášky IMP: https://wis.fit.vutbr.cz/FIT/st/course-files-st.php/course/IMP-IT/lectures cs.wikipedia.org