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ý beh aplikácie
    • aktivován po resetu
    • začne sa najprv vykonávať kód z reset vektora
  • 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
    • zastavenie do obrdržania príkazu BKGD
  • Wait
    • CPU prepnurý do nízkopríkonového režimu
    • Systémové hodiny bežia
    • Plná funkcia napäťového regulátora
    • Podpora podmnožiny BKGD príkazov
    • aktivován instrukcí WAIT
    • ukončení při vzniku přerušení
  • Stop
    • Zastavené CPU a BCLK
    • Zapnutie bytom STOPE=1
  • Stop 3
    • obmedzenie spotreby vnútorných obvodov a rýchle prebudenie
    • ram, usb ram a registre sú aj naďalej napájané
    • garancia zachovania stavov, registrov, ram, IO výstupov
    • vyskočenie prerušením alebo resetom
  • Stop 2
    • odpojenie napájania vnútrorných obvodov
    • uchovanie obsahu ram a usb ram
    • vyskočenie resetom, signálom na vývode IRQ-TMPCLK, prerušením od RTC
    • akcie rovnaké ako pri power on reset
    • automaticky sa nadstavý bit PPDF pre aplikačné špec. zotavenie
    • je nutné z ram obnoviť nadstavenia

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í
    • Maskovatlené: dajú sa blokovať
    • Nemaskovatelné: nedajú sa zablokovať ako napríklad reset
  • Priebeh
  • Detekcia: po detekcii požiadavku na prerušenie CPU dokončí vykonávanú inštrukciu, okrem reset
  • Uloženie kontextu CPU na zásobník
  • Zakázanie prerušení, zabraňuje opakovanému obsluhovaniu prerušovania
  • Arbitráž a výber vektoru prerušenia, vyberáme vektor nezpravovaného prerušenia s najvyššou prioritou
  • Uloženie do PC a zahájenie obsluhy

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
      • musíme zaistiť aby prijímač a vysielač bežali na rovnakej frekvencii a mali rovnakú fázu
      • synchrónizácia fáze oboch generátorov sa vykonáva s predom dohodnotou zmenou úrovne na dat. vodiči
      • na začiatku prenosu musí prísť k synch. hodín vysielača a prijímača
      • spočiatku generujeme zmenu logického signálu bez ohladu na hodnotu prvého prenášaného bitu
    • Datovy ramec
      • prvý informačný bit sa objavuje az po nejakej doby od počiatočnej hrany
      • signál, ktorý je vyplnený opačnou hodnotou ako je kľudová hodnota sa nazýva start bit
      • za posledným vyslaním datovým bitom a prípadným par. bitom musí byť aspoň jeden stop bit
      • stop bit má hodnotu kľudového stavu, slúži k vzájomnému oddeleniu prenášaných slov
      • je veľký jeden alebo dva bity
      • stop byt slúži aj na to aby mal prijímač čas odoslať prijaté slovo zo vstupného pos. reg. ďalej
      • kľudová hodnota je space a aktívna je mark
      • frame.jpg
    • Trvanie prenosu ramca
      • doba na prenos rámca je tr = n(počet bitov rámca) * T(per. synch. sig.)
      • n = 1 + D (počet datových bitov) + P (počet paritných) + S (počet stop)
      • prenosová rýchlosť sa udáva v baundech Bd, bitov za sekundu
      • TP = N * n / BAUD = 1024 (prenos) * 11 (8+par+start+stop) / 9600 = 1,17s

SCI = Serial Communication Interface

  • Info
    • sériové a asynchrónne rozhranie a plne duplexný systém
    • skladá sa z: gen. hod. sig, modulu vysielača a prijímača a podporných obvodov
    • výstup vysielača je vyvedený na TxD a vstup prijámača na ExD
    • registry: datové, konfiguračné a stavové
  • Hodiny
    • spoločné pre vysielač a prijímač
    • prenosová rýchlosť sa dá nadstaviť
    • zdrojom frekvencie generátora je hodinový signál vnútornej zbernice BUSCLK
    • prenosovú rýchlosť nadstavuje programátor cez hodnotu v registri SCIxBD ako delička
  • Odosielanie znaku
    • data sa zapíšu do datového registra SCIxD
    • vysielač skompletuje rámec a postupne ho posiela na výstup TxD s taktom gen.hod.sig
    • pred zápisom otestujeme či je datový register prázdny
    • pred zápis tiež skontrolujeme príznak prázdneho registra ako 7bit TDRE v SCIxS1 a musí byť 1
    • potom je znak prenesený do TSR - posuvný register
    • vysielanie je možné sledovať stavovým bytom TC v SCIxS1
    • TC hovorí o tom že datá boli úspečne vyslané

  • Prijem znaku
    • automaticky zaisťovaný obvodmi prijímača, tie riadia a vyhodnocujú priebeh
    • spracovaný znak sa pripravá do datového registra SCIxD
    • okamžik dokončenia prijímania je indikované bitom RDRF - receive data register full v SCIxS1
    • pred čítaním musíme otesotvať tento bit na 1 a až potom čítať
    • v priebehu sú jednotlivé bity rámca ukladané do RSR posuvného registra
    • prijímané data sú vzorkované 16x vyššou frekvenciou než frekvencia generované podľa SCIxBD

SPI = Serial Peripheral Interface

  • Info
    • synchrónne sériové rozhranie, plný duplex
    • 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)
    • moznost komparatora
  • 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
    • Datové vodiče označujeme ako MISO a MOSI podla vzťahu
    • Master in a slave out, master out a slave in
    • Hodinový signál tvorí master a je na vodiči SPSCK
    • SS signál je výberový a slúži k aktivácii zariadenia pre komunikáciu
    • Na strane slave je SS vstupom ktorý v aktívnej úrovni posiela obsah posuvného registra na stranu mastera
    • Vysielajú sa na MOSI datové bity zo svojho posuvného registra a zároveň z registru druhej strany sa prijíma cez MISO data z posuvného registra slave. Vzájomná výmena dát.
    • Po osmich taktoch môže master a slave čítať prijaté data a zapísať data pre vysielanie
    • Jednostranny prenos cez SPI je spojený odoslaním alebo prijímaním bezvýznamného znaku druhej strane

Rozhraní IIC (I^2C)

  • Info
    • synchrónne sériové a jednoduché s halfduplex
    • jeden datový vodič a jeden vodič na synch. signál
    • možnosť pripojiť až 127 slave
    • hlavním cílem je jednoduchost a levná implementace

  • Komunikace
    • Ak nie je komunikácia potom master ani slave neovlivňuje vodiče
    • komunikácia sa začne master hranou z 1 na 0
    • master generuje adresový rámec
    • podľa hodnoty bitu RW rozhodne buď zasiela data modulu slave alebo číta
    • po ukončení generuje master hranu 0 na 1
    • nemusí sa vždy generovať ukončovanie až na úplnom samom konci stačí

  • Datovy ramec
    • Sériovo prenášané data po bitoch
    • skladá sa zo štart hrany, datové bloky po 8 bit a potvrdením zo slave o rozpoznaní, a ukončeniu

  • Adresovanie
    • Pri viac master konflikte je riešenie datovou arbitrážov
    • aby sme mohli jednoz. identifikovať zariadenie pre kom. musíme zaviesť unikátne adresy modulov
    • zahájanie komunikácie spočíva v odoslaní 8bit v prvom adresovom rámci ako adresa

Porty

  • Mikrokontroler
    • Vnímajú okolie cez jednoduché dvojstavové rozhranie, ktoré sa združené do portov po ôsmich
    • Porty sú vedené na púzdro MCU
    • Veľa z nich je zdielaných s inými perifériami
    • Pomenované sú písmenami abecedy
  • Vystupne porty
    • Vedia urobiť logickú jedna alebo nulu na vývode púzdra MCU
    • Ide o pripojenie určitého napätia na vývody
    • log. 0 je napětí na úrovni země, log. 1 pak napětí na úrovni napájecího napětí
    • Môžeme použiť buď jeden pin alebo celý port
    • Výstup môže dodávať prúd okolo 25 mA a celkovo čepať 120
  • Ganged output
    • Zlúčenie viac pinov pre posilnenie výstupu
    • Funguje len u niektorých portov na MCU
  • Prechodny dej
    • Pri prechode napríklad z log 0 na 1 nastane určitá špička
    • Môžeme ju redukovať tým že spomalýme buď nábeh
    • Na obmedzenie môžeme použiť aj redukciu výšky skoku ako drive strenght

  • Ovladanie
    • Data: datový register
    • Data direction: rozhodnutie či zápis alebo čítanie
    • Pul-Up Enable: rozhodnutie či sa bude používať pulup rezistor
    • Slew Enable: spomalenie prechodu
    • Drive Strength: zníženie sily skoku
  • Pull up rezistor
    • rezistor, který definuje úroveň v případě, kdy je pin jinak „ve vzduchu“
    • lze jej zapnout uvnitř MCU

  • Modul KBI
    • Podpora generovanie prerušení od pinov
    • Možnosť reagovať na hranu alebo úroveň
    • Len na niektorých portoch
    • KBI má prioritu pred bežnou funkciou portov

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

  • Info
    • typicky má 3 části: dolnopropusní filtr, Track/Hold, AD převodník
    • převádí anslogový vstup na číslicový výstup
    • Používa sa aproximačný model
    • Ideme od MSB a postupne generujeme nižšie bity
    • Vždy porovnáme hodnotu a upravíme ďalší byt a tak iterujeme

  • Viacej kanálov ADC
    • Vyberáme ich cez multiplexor
    • Používame len jeden prevodník
    • SH je nejaký kondík aby na chvílu uskoval hodnotu analog. sig. aby sa nemenila

  • Napajanie
    • Môžeme použiť vlastné napájanie
    • Nadstavenie referenčných hodnôt
  • Prevod
    • Prevod u AD prevodníka trvá určitú dobu
    • Zahájenie: nadstavíme konfiguráciu
    • Vykonanie: aproximačné vkonávanie
    • Ukončenie: buď uloženie výsledku alebo násilné prerušenie
  • Zahajenie
    • Softvérové: zápisom do ADCSC1
    • Hardwarové: príde k dosiahnutí hodnoty module reg. RTCMOD pri čítači real. času
    • Pri hardwarovom môžeme nadstaviť periódu vzorkovanie vstupného signálu
    • Pri soft. sa ďaľší prevod realizuje okamžide ako je ukončený predchádzajúci prevod
  • Vysledok
    • K dispozícii v registroch ADCRH a L
    • Ukončenie v COCO
    • Možnosť generovania prerušení
    • Možnosť nadstaviť aby bol výsledok indikovaný len ak je nehajá hodnota presiahnutá

Č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.txt · Poslední úprava: 2016/05/24 22:20 autor: xpavel27
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki