Toto je starší verze dokumentu!


Export page to Open Document format

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).
      • frame.jpg

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

Diskuze

vagyvagabund, 2011/03/14 23:13

–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

Vložte svůj komentář
 
temata/05-vestavene_systemy/main.1464118248.txt.gz · Poslední úprava: 2016/05/24 21:30 autor: xpavel27
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki