Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

temata:05-vestavene_systemy:main [2011/04/07 13:36]
ofeig [Mikropočítače μC] - Hardvardská architektura
temata:05-vestavene_systemy:main [2016/05/24 22:20] (aktuální)
xpavel27 [Analogově-číslicový převodník (ADC)]
Řádek 1: Řádek 1:
 +~~ODT~~
 +
 ====== Vestavěné systémy ====== ====== 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: 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:
Řádek 22: Řádek 24:
   * jsou všude kolem nás (od hodinek, přes pračky, ledničky, auta ...)   * jsou všude kolem nás (od hodinek, přes pračky, ledničky, auta ...)
 ==== Typická struktura E. S. ==== ==== Typická struktura E. S. ====
-{{:temata:05-vestavene_systemy:es_struktura.png|}}+{{:temata:05-vestavene_systemy:es_struktura.png?500}}
  
 ==== Microprocesory μPs ==== ==== Microprocesory μPs ====
Řádek 62: Řádek 64:
     * instrukční sada: CISC, střadačová architektura     * instrukční sada: CISC, střadačová architektura
   * registry   * registry
-    * {{:temata:05-vestavene_systemy:registry.png|}}+    * {{:temata:05-vestavene_systemy:registry.png?600}}
   * instrukční sada   * instrukční sada
     * ADD, AND, SUB, SWI (soft. přerušení)     * ADD, AND, SUB, SWI (soft. přerušení)
Řádek 69: Řádek 71:
       * adresa (100, $F0, $FB000)       * adresa (100, $F0, $FB000)
   * adresovací režimy   * adresovací režimy
-    * inherent **INH**+    * inherent **INH** <- reřim bez adres
       * MUL:  X:A <- (X) * (A)       * MUL:  X:A <- (X) * (A)
     * relative **REL**     * relative **REL**
Řádek 89: Řádek 91:
 == Režimy činnosti == == Režimy činnosti ==
   * **RUN**   * **RUN**
-    * "plný" běh aplikace+    * plný beh aplikácie
     * aktivován po resetu     * aktivován po resetu
-    * CPU začíná provádět kód, kde první instrukce je uložená v //reset vektoru// +    * začne sa najprv vykonávať kód reset vektora
-    * {{:temata:05-vestavene_systemy:run-reset.png|}}+
   * **Active background**   * **Active background**
     * ladění aplikace, bootloader     * ladění aplikace, bootloader
     * aktivace více způsoby: např.log. 0 při nástupní hraně hodin RESET*     * 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     * užití např. k (pře)programování aplikace před vstupem do Run
 +    * zastavenie do obrdržania príkazu BKGD
   * **Wait**   * **Wait**
-    * CPU zastaven (snížení spotřeby), systémové hodiny ží, plná funkce napěťového regulátoru+    * 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     * 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í     * ukončení při vzniku přerušení
   * **Stop**   * **Stop**
-    * zastaveno CPU, BUSCLK +    * Zastavené CPU a BCLK 
-    * Stop 3 - uchovává obsah RAMUSB RAMregistrů; možný rychlý přechod do Run +    * Zapnutie bytom STOPE=1 
-    * Stop 2 - uchovává obsah RAMUSB RAM+  * **Stop 3** 
 +    * obmedzenie spotreby vnútorných obvodov a rýchle prebudenie 
 +    * ramusb ram a registre sú aj naďalej napájané 
 +    * garancia zachovania stavov, registrov, ramIO 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-TMPCLKpreruš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ěť ==== ==== Paměť ====
-  * RAM, USB RAM +  * Direct Page - Registre 
-  * Flash +  * High Page - Špeciálne registre 
-  * registry+  * Non voltaile - Uloženie zapezpeč. klúčov napríklad 
 +  * Chvost - Obsahuje vektory prerušenia 
 +{{ temata:05-vestavene_systemy:mem2.png?400 }}
 == Ram == == Ram ==
   * statická, napájena ve všech režimech činnosti MCU   * statická, napájena ve všech režimech činnosti MCU
-  * obecně využitelná +  * **Od 0x0000 po 0x00FF** 
-  * USB RAM 256B určená //primárně k alokaci prostoru pro uložení BDT// (Buffer Descriptor Table) //endpoint bufferů//+  * 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 BDTBuffer desc. table a endpoint bufferov 
 +  * inak sa dá tiež využiť ako non-secure RAM
 == Flash == == Flash ==
-  * primárně určená pro uložení programu E.S. +  * Uloženie programu s podporou In-Circuit a In-Application programming 
-  * kapacita (JM60): 60 912 B ~ 119 stránek po 512B +  * 64KB, 119 stránok po 512 B 
-  * stránka je nejmenší mazatelná stránka +  * Stránka je najmenšia mazatelná jednotka 
-  * příkazové rozhraní +  * Možnosť security, príkazové rozhranie 
-  * možnost zabezpečení dat (security) +  * Automatický prechod do úsporného režimu
-  * automatický přechod do úsporného režimu+
   * po resetu MCU je možno zapsat nejvýše 1x   * 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
 +
 +{{ temata:05-vestavene_systemy:lock.png?400 }}
 +
 +  * **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í ==== ==== Podprogram vs. přerušení ====
 Standratní programová smyčka: Standratní programová smyčka:
Řádek 129: Řádek 169:
   * při **přerušení** je podprogram volán instrukcí a podgram obsluhy přerušení je zase vyvolán hardwarově   * 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í     * probíhá nesynchronizovaně -> nelze přesně určit, kdy se předá řízení
-  * zdroj přerušení se prezentuje aktivní úrovní +    * 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í +    * Maskovatlené: dajú sa blokovať 
-    * 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+    * Nemaskovatelné: nedajú sa zablokovať ako napríklad reset 
 +     
 +  * **Priebeh** 
 +    * Detekcia: po detekcii požiadavku na prerušenie CPU dokončí vykonávanú inštrukciuokrem 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 ==== ==== Základní  princip sériové komunikace ====
Řádek 143: Řádek 190:
       * v celé soustavě je jeden zdroj časového signálu             * v celé soustavě je jeden zdroj časového signálu      
     * **Asynchronní sériový přenos**     * **Asynchronní sériový přenos**
-      * hodinový signál se nepřenáší, ale přímač si ho generuje sám +      * musíme zaistiť aby prijímač a vysielač bežali na rovnakej frekvencii a mali rovnakú fázu 
-      * je potřeba zajistit dostatečnou přesnost generátoru hodinového signálu v přijmači prostředkykterými je možné generátor hodinového signálu přijímače synchornizovat s generátorem vysílače +      * synchrónizácia fáze oboch generátorov sa vykonáva s predom dohodnotou zmenou úrovne na dat. vodiči 
-      * na začátku přenosu musí dojít k synchronizaci hodin vysílače a přijmač+      * 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 prípadným par. bitom musí byť aspoň jeden stop bit 
 +      * stop bit má hodnotu kľudového stavuslúž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 
 +      * {{:temata:05-vestavene_systemy:frame.jpg?600}} 
 +    * **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 === === SCI = Serial Communication Interface ===
-  * asynchronní sériové rozhraní +  * **Info** 
-  v mikrokontroléru HCS08 se jedná o plně duplexní systém (tj. současně lze data vysílat i příjmat) +    sériové a asynchrónne rozhranie a plne duplexný systém 
-  sytém tvoří generátor hodinového signálu, modulu vysílačmodulu přijmačpodpůrných obvodů +    skladá sa z: gen. hod. sig, modulu vysielača a prijímača a podporných obvodov 
-  * výstup vysílačje vyveden na vodič označený TxD (transmit data), vstup přijmače je vyveden na vodič označený RxD (receive data) +    * výstup vysielačje vyvedený na TxD vstup prijámačna ExD 
-  podstatné jsou pro programátora registry SCI: datové, konfigurační a stavové  +    * 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é
  
 +{{ :temata:05-vestavene_systemy:scir.png?500 }}
 +
 +  * **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
 +
 +{{ :temata:05-vestavene_systemy:scis.png?500 }}
 +  
 === SPI = Serial Peripheral Interface === === SPI = Serial Peripheral Interface ===
-  * synchronní sériové rozhraní  +  * **Info** 
-  * 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) +    * synchrónne sériové rozhranie, plný duplex 
-  * umožňuje spojení //point-to-point// i vytvoření //SPI sběrnice// (k propojení více komponent) +    * 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) 
-  plně duplexní rozhraní (v každém okamžiku vždy probíhá přenos oběma směry) +    * umožňuje spojení //point-to-point// i vytvoření //SPI sběrnice// (k propojení více komponent) 
-  * zařízení připojení přes SPI může být v jednou ze dvou režimů: +    moznost komparatora 
-    * **master** +  * **master** 
-      * generuje synchronizační hodinový signál +    * generuje synchronizační hodinový signál 
-      * inicializuje a řídí komunikaci přes SPI +    * inicializuje a řídí komunikaci přes SPI 
-      * na sběrnici SPI může být pouze jedno zařízení tohoto typu +    * na sběrnici SPI může být pouze jedno zařízení tohoto typu 
-      * zpravidla se jedná o mikrokontrolér       +    * zpravidla se jedná o mikrokontrolér       
-    * **slave** +  * **slave** 
-      * obvykle to jsou periferie, se kterými master komunikuje (master určuje se kterým slave bude komunikovat)   +    * 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ů +  * **Komunikace** 
-    * {{:temata:05-vestavene_systemy:spi.png|}}+    * 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 
 + 
 +{{ :temata:05-vestavene_systemy:spi.png?500 }}
  
 === Rozhraní IIC (I^2C) === === Rozhraní IIC (I^2C) ===
-  * synchronní sériové rozhraní +  * **Info*
-  hlavním cílem je jednoduchost a levná implementace +    * synchrónne sériové a jednoduché s halfduplex 
-  specifikuje fyzickou podobu rozhraní, jeho elektrické charakteristiky a komunikační protokol +    * jeden datový vodič a jeden vodič na synch. signál 
-  protokol typu master-slave komunikující způsobem half-duplex +    možnosť pripojiť až 127 slave 
-    * {{:temata:05-vestavene_systemy:iic.png|}} +    hlavním cílem je jednoduchost a levná implementace
-  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 +
-{{:temata:05-vestavene_systemy:iic_prubeh.png|}}+
  
-==== Porty ==== +{{ :temata:05-vestavene_systemy:iic.png }} 
-  * 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émukterý má primárně jiné určen, než "jen" být počítačem +  * **Komunikace** 
-  * 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ů +    * Ak nie je komunikácia potom master ani slave neovlivňuje vodiče 
-  porty jsou vyvedeny na pouzdro MCU - jedná se o skutečné rozhraní mezi MCU a dalšími obvody  +    * komunikácia sa začne master hranou z 1 na 0 
-  * vstupně-výstupní piny jsou sdruženy po osmi do portů +    * master generuje adresový rámec 
-  mnoho z nich sdílí vývod pouzdra s jinými periferiemi (když je periferie aktivní, nelze použít pin portu) +    * podľa hodnoty bitu RW rozhodne buď zasiela data modulu slave alebo číta 
-  porty jsou pojmenovány písmeny abecedy, různé MCU mají různý počet portů +    * po ukončení generuje master hranu 0 na 1 
-  * výstupní pin portu +    * nemusí sa vždy generovať ukončovanie až na úplnom samom konci stačí 
-    * umí udělat logickou 0 nebo 1 na vývodu pouzdra MCU + 
-    * log. úrovně jsou reprezentovány napětím, jde připojení určitého napětí na vývod MCU+{{ :temata:05-vestavene_systemy:iic_prubeh.png?500 }} 
 + 
 +  * **Datovy ramec** 
 +    * Sériovo prenášané data po bitoch 
 +    * skladá sa zo štart hranydatové bloky po 8 bit a potvrdením zo slave o rozpoznaní, a ukončeniu 
 + 
 +{{ :temata:05-vestavene_systemy:iicwork.png?500 }} 
 + 
 +  * **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 
 + 
 +{{ :temata:05-vestavene_systemy:iicaddr.png?500 }} 
 +   
 +==== 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 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í     * log. 0 je napětí na úrovni země, log. 1 pak napětí na úrovni napájecího napětí
-== Pull up rezistor == +    * Môžeme použiť buď jeden pin alebo celý port 
-  * rezistor, který definuje úroveň v případě, kdy je pin jinak "ve vzduchu" +    * Výstup môže dodávať prúd okolo 25 mA a celkovo čepať 120 
-  * lze jej zapnout uvnitř MCU    +  * **Ganged output** 
-  * {{:temata:05-vestavene_systemy:pull_up.png|}}+    * 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 
 + 
 +{{ :temata:05-vestavene_systemy:portdeje.png?500 }} 
 + 
 +  * **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    
 + 
 +{{ :temata:05-vestavene_systemy:pull_up.png?400 }}
  
-==== Číslicově-analogový převodník (ADC) ====+  * **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)   * 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   * důležitá je zpětná vazba
-  * {{:temata:05-vestavene_systemy:adc.png|}} 
   * předvod aproximačním AD převodníkem je děj, který trvá určitou dobu; proto lze vysledovat fáze   * 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//     * //zahájení převodu//
Řádek 217: Řádek 352:
  
 === AD převodník === === AD převodník ===
-  * typicky má 3 části +  * **Info** 
-    * dolnopropusní filtr +    * typicky má 3 částidolnopropusní filtrTrack/HoldAD převodník 
-    * Track/Hold +    * převádí anslogový vstup na číslicový výstup 
-    * AD převodník +    * Používa sa aproximačný model 
-  * převádí anslogový vstup na číslicový výstup+    * Ideme od MSB a postupne generujeme nižšie bity 
 +    * Vždy porovnáme hodnotu a upravíme ďalší byt a tak iterujeme
  
 +{{ :temata:05-vestavene_systemy:adcmy.png?400 }}
 +
 +  * **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
 +
 +{{ :temata:05-vestavene_systemy:adc.png?400 }}
 +
 +  * **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á
 +
 +{{ :temata:05-vestavene_systemy:adcset.png?400 }}
 ==== Časovač/čítač ==== ==== Č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í   * čí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í
Řádek 239: Řádek 404:
   * 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í)   * 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   * 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 ====
 +<note tip>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</note>
  
 <doodle single login|05> <doodle single login|05>
 ^ OK ^ !!! ^ ^ OK ^ !!! ^
 </doodle> </doodle>
 +
 +{{tag>ofeig IMP vestavene_systemy programovy_model preruseni podprogram seriovy_prenos IIC SPI SCI porty AD_prevodnik casovac_citac}}
  
 ~~DISCUSSION~~ ~~DISCUSSION~~
temata/05-vestavene_systemy/main.1302176212.txt.gz · Poslední úprava: 2011/04/07 13:36 autor: ofeig
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki