Návrh automatických systémov na báze mikroprocesorov. Vývoj mikroprocesorových systémov Etapy návrhu mikroprocesorových systémov

  • 06.11.2021

Návrh mikroprocesorových systémov

Úvod

Úloha vývoja počítačových systémov pomocou mikrokontrolérov si vyžaduje znalosť a pochopenie princípov ich fungovania, ale hlavnou vecou je zostaviť riadiace programy. Účelom tejto knihy je naučiť sa navrhovať zariadenia s mikrokontrolérmi.

Ako základný mikroobvod pre všetky príklady uvedené v knihe sa používa mikroobvod Atmega 128 z populárnej rodiny mikroprocesorov Atmel AVR. Predpokladá sa, že čitateľ má základné znalosti o princípoch mikroprocesorovej technológie a architektonických vlastnostiach tohto mikrokontroléra.

Program pre mikrokontrolér je súbor kódov, ktoré sa zapisujú do jeho špeciálnej programovej pamäte. Program musí napísať programátor, ktorý vyvíja konkrétny mikroprocesorový systém, ale nikdy sa nezaoberá kódmi. Pre človeka je pohodlnejšie pracovať s príkazmi, z ktorých každý má svoj vlastný zmysluplný názov. Preto sa na písanie programu používa programovací jazyk.

Hlavnou úlohou jazyka je jednoznačne popísať postupnosť akcií, ktoré musí mikrokontrolér vykonať. Zároveň musí byť jazyk pre človeka zrozumiteľný.

V procese vytvárania programu programátor jednoducho napíše jeho text do počítača rovnakým spôsobom ako akýkoľvek text. Potom programátor spustí špeciálny program – prekladač, ktorý preloží programátorom napísaný text do strojových kódov, ktoré sú zrozumiteľné pre mikroprocesor.

Volá sa text programu napísaný programátorom originálny alebo objektový kód... Zavolá sa kód získaný ako výsledok vysielania výsledný alebo strojový kód... Práve tento kód sa zapisuje do programovej pamäte mikrokontroléra. Na písanie výsledného kódu sa používajú špeciálne zariadenia - programátorov.

Všetky programovacie jazyky sú rozdelené do dvoch skupín:

· Nízkoúrovňové jazyky (strojovo orientované);

· Jazyky na vysokej úrovni.

Assembler je typickým príkladom strojovo orientovaného jazyka. V nedávnej minulosti bol Assembly jediným jazykom na programovanie mikrokontrolérov. V súčasnosti sa na tvorbu programov používajú jazyky vysokej úrovne, ako napr ZÁKLADNÉ, Si atď. Tieto jazyky boli kedysi vyvinuté pre veľké počítače. Ale teraz sú široko používané pre mikrokontroléry.

Výhodou jazykov na vysokej úrovni je výrazné zrýchlenie procesu vývoja programu. Zo všetkých jazykov na vysokej úrovni je C pravdepodobne najefektívnejší. Preto v nasledujúcom texte zvolíme na ilustráciu tento jazyk. Pre rôzne rodiny mikroprocesorov boli vyvinuté rôzne jazykové verzie. Napríklad pre mikroprocesory rodiny AVR - C AVR.

Kapitola 1. Písanie programov pre mikrokontroléry

Prvky jazyka C

Registre MK (registre sú bajtové bunky v pamäti AVR MK) v programe C majú názvy a keďže čísla vo väčšine z nich je možné meniť - pre program sú registre v podstate premenné.
Variabilné je množina buniek v pamäti, do ktorej môžete uložiť číslo alebo čísla a zmeniť ich. Premenná má adresu a názov.

Neustále- je to ako premenná, ale nemôžete zmeniť obsah.

Konštanty

Hodnoty uvedené v programe sa nazývajú konštanty. Jazyk C rozlišuje štyri typy konštánt: celočíselné konštanty, konštanty s pohyblivou rádovou čiarkou, znakové konštanty a reťazcové literály.

Celočíselná konštanta: Ide o desiatkové, osmičkové, šestnástkové alebo binárne číslo, ktoré predstavuje celočíselnou hodnotu v jednej z nasledujúcich foriem: desiatkové, osmičkové, šestnástkové alebo binárne.

Desatinná konštanta pozostáva z jednej alebo viacerých desatinných číslic a prvá číslica nesmie byť nula (v opačnom prípade bude číslo interpretované ako osmičkové).

Osmičková konštanta pozostáva z požadovanej nuly a jednej alebo viacerých osmičkových číslic (medzi číslicami by nemali byť zahrnuté žiadne osem a deväť, pretože tieto číslice nie sú zahrnuté v osmičkovej číselnej sústave).

Hexadecimálna konštanta začína povinnou sekvenciou 0x alebo 0X a obsahuje jednu alebo viac hexadecimálnych číslic (číslice sú množinou hexadecimálnych číslic: 0,1,2,3,4,5,6,7,8,9, A, B C, D, E, F).

Binárna konštanta sa zapisuje pomocou binárnych znakov, ktorým musí predchádzať postupnosť 0b.

napríklad - Celé čísla dá sa napísať:

Desatinné číslo: 12 234 -5493

V binárnej forme s predponou 0b takto: 0b101001

V hexadecimálnom tvare s predponou 0x takto: 0x5A

V osmičkovom tvare s predponou 0 takto: 0775

Ak potrebujete vytvoriť zápornú celočíselnú konštantu, potom pred napísaním konštanty použite znak „-“ (ktorá sa bude nazývať unárne mínus). Napríklad: -0x2A, -088, -16.

Každá celočíselná konštanta má priradený typ, ktorý určuje prevody, ktoré sa musia vykonať, ak sa konštanta používa vo výrazoch. Typ konštanty je definovaný nasledovne:

Desatinné konštanty sa považujú za hodnoty so znamienkom a majú priradený typ int (celé číslo) alebo long (dlhé celé číslo) podľa hodnoty konštanty. Ak je konštanta menšia ako 32768, potom je jej priradený typ int, inak long.

Osmičkovým a hexadecimálnym konštantám je priradený typ int, unsigned int(celé číslo bez znamienka), dlhý alebo nepodpísané dlhé v závislosti od hodnoty konštanty podľa tabuľky 1.1.

Tabuľka 1.1

Rozsah hexadecimálnych konštánt Rozsah osmičkových konštánt Typ
0x0 - 0x7FFF 0 - 077777 int
0X8000 – 0XFFFF 0100000 - 0177777 unsigned int
0X10000 – 0X7FFFFFFFF 0200000 - 017777777777 dlhý
0X80000000 – 0XFFFFFFFF 020000000000 - 037777777777 nepodpísané dlhé

Číslo s pohyblivou rádovou čiarkou pozostáva z celého čísla a zlomkovej časti a/alebo exponentu. Konštanty s pohyblivou rádovou čiarkou predstavujú kladné hodnoty s dvojnásobnou presnosťou (typu double). Na určenie zápornej hodnoty je potrebné vytvoriť konštantný výraz pozostávajúci zo znamienka mínus a kladnej konštanty.

Príklady: 115,75, 1,5E-2, -0,025, 0,075, -0,85E2

Znaková konštanta – reprezentovaná znakom uzavretým v apostrofoch. Hodnota znakovej konštanty je číselný kód znaku.

Napríklad „Q“ je písmeno Q.

Symbolické konštanty sú typu int a pri konverzii typu sa dopĺňajú znamienkom.

Reťazcová konštanta (doslova) - sekvencia znakov (vrátane reťazca a veľkých ruských a latinských písmen a číslic) uzavretých v úvodzovkách (").

Napríklad "Heloo"

Reťazcové doslovné znaky sú uložené v pamäťovej oblasti. Kompilátor pridá na koniec každého reťazcového literálu znak null, ktorý predstavuje sekvencia escape \ 0. Reťazcový literál je typu char.

1.1.2. Identifikátor

Identifikátor je postupnosť čísel a písmen, ako aj špeciálnych znakov, za predpokladu, že prvý je písmeno alebo špeciálny znak. Na vytvorenie identifikátorov sa môžu použiť malé alebo veľké písmená latinskej abecedy. Znak podčiarknutia (_) možno použiť ako špeciálny znak. Dva identifikátory, pre ktoré sa používajú zhodné veľké a malé písmená, sa považujú za odlišné. Napríklad: abc, ABC, A128B, a128b.

Identifikátor vzniká v štádiu deklarovania premennej, funkcie, štruktúry a pod. potom môže byť použitý v ďalších výpisoch vyvinutého programu. Identifikátor sa nesmie zhodovať s kľúčovými slovami, s rezervovanými slovami a s názvami funkcií knižnice kompilátora C.

Kľúčové slová

Dátové typy a ich deklarácia

Dôležitým rozdielom medzi jazykom C a inými jazykmi je absencia predvoleného princípu, čo vedie k potrebe explicitne deklarovať všetky premenné použité v programe spolu s uvedením ich zodpovedajúcich typov.

Formát deklarácie premennej je nasledujúci:

[]

- Špecifikátor triedy pamäte - je definovaný jedným zo štyroch kľúčových slov jazyka C: auto, extern, register, static a na jednej strane udáva, ako bude alokovaná pamäť pre deklarovanú premennú a na druhej strane rozsah. tejto premennej, tj ., z ktorých častí programu sa na ňu môžete odvolávať. Nie je to povinný prvok a je potrebný len v niektorých prípadoch.

- ak je možné premennú použiť v iných súboroch zdrojového kódu programu;

- ak je premenná lokálna, potom je deklarovaná v nejakej funkcii za zátvorkou a musí si zachovať svoje hodnoty až do ďalšieho volania tejto funkcie;

- umiestniť premennú do registrov MK.

Globálne premenné sú deklarované skôr, ako sa objavia v texte akejkoľvek funkcie. Po deklarovaní sú globálne premenné dostupné v akejkoľvek funkcii programu.

Lokálne premenné sú deklarované hneď na začiatku funkcií – t.j. po kučeravej rovnátka.

- špecifikátor typu údajov, ktorý môže premenná uchovávať.

Na definovanie údajov celočíselného typu sa používajú rôzne kľúčové slová, ktoré určujú rozsah hodnôt a veľkosť pamäťovej oblasti pridelenej premenným.

Napríklad,

Unsigned char - ukladá číslo od 0 do 255 (bajtov);

Unsigned Int – ukladá číslo od 0 do 65535 (dva bajty);

Unsigned long Int – ukladá číslo od 0 do 4294967295 (štyri bajty).

Namiesto Unsigned char môžete napísať len char, keďže kompilátor štandardne považuje char za unsigned.

Znak so znamienkom - znamená premennú so znamienkom a ukladá číslo od -128 do 127.

Kľúčové slová so znamienkom a bez znamienka označujú, ako sa interpretuje nulový bit deklarovanej premennej, to znamená, že ak je zadané kľúčové slovo bez znamienka, potom sa nulový bit interpretuje ako časť čísla, inak sa nulový bit interpretuje ako so znamienkom. Ak kľúčové slovo bez znamienka chýba, celočíselná premenná sa považuje za podpísanú. V prípade, že špecifikátor typu pozostáva z typu kľúča podpísaný alebo nepodpísaný a potom nasleduje identifikátor premennej, potom sa bude považovať za premennú typu int. Napríklad:

unsigned int n, unsigned int b, int c; (implicitne podpísané int c), nepodpísané d; (znamená nepodpísané int d), podpísané f; (implicitne podpísané int f).

Premenná akéhokoľvek typu môže byť vyhlásená za nemodifikovateľnú. To sa dosiahne pridaním kľúčového slova const do špecifikátora typu. Const objekty predstavujú dáta len na čítanie, t.j. tejto premennej nemožno priradiť novú hodnotu. Všimnite si, že ak za slovom const nie je špecifikátor typu, potom sa predpokladá typový špecifikátor int. Ak sa kľúčové slovo const dostane pred deklaráciu kompozitných typov (pole, štruktúra, zmes, enumerácia), tak to vedie k tomu, že každý prvok musí byť aj nemodifikovateľný, t.j. hodnotu možno priradiť iba raz.

const double A = 2,128E-2, const B = 286; (implikuje const int B = 286) consnant char_ string konštanta = "toto je reťazcová konštanta"

Plávajúce dáta

Pre premenné reprezentujúce číslo s pohyblivou rádovou čiarkou sa používajú tieto modifikátory typu: float, double, long double (v niektorých implementáciách jazyka C long double absentuje).

Hodnota float trvá 4 bajty. Z nich je 1 bit vyhradený pre znamienko, 8 bitov pre nadmerný exponent a 23 bitov pre mantisu. Všimnite si, že najvýznamnejší bit mantisy je vždy 1, takže nie je vyplnený; preto je rozsah hodnôt premennej s pohyblivou rádovou čiarkou približne 3,14E-38 až 3,14E + 38. Dvojka zaberá 8 bajtov v pamäti. Jeho formát je podobný ako u float. Pamäťové bity sa prideľujú nasledovne: 1 bit pre znamienko, 11 bitov pre exponent a 52 bitov pre mantisu. Ak vezmeme do úvahy vynechaný bit mantisy vysokého rádu, rozsah hodnôt je od 1,7E-308 do 1,7E + 308.

float f, a, b, double x, y;

je názov premennej. Napríklad imy peremennoi.

Pre premenné je zvykom používať malé písmená a na odlíšenie názvov premenných od názvov funkcií môžu názvy premenných začínať písmenom a názvy funkcií (okrem hlavnej) podčiarkovníkom.

Napríklad, moya peremennaya , _vasha funkzia.

Globálne premenné, ako aj lokálne premenné so statickým modifikátorom sa pri štarte a reštarte programu rovnajú 0, pokiaľ im neboli priradené iné hodnoty.

Niekoľko príkladov deklarácií premenných:

Unsigned Char my_peremen = 34; / * my_peremen je definovaný ako Unsigned Char s priradením 34 (je možné aj bez priradenia) * /

Unsigned Int big_ peremen = 34634; / * big_ peremen je deklarovaný ako Unsigned Int * /.

Vyhlásenie poľa

Polia sú skupinou prvkov rovnakého typu (double, float, int atď.). Z deklarácie poľa musí kompilátor získať informácie o type prvkov poľa a ich počte. Deklarácia poľa má dva formáty:

deskriptor typového špecifikátora [konštanta - výraz];

rukoväť typového špecifikátora;

Deskriptor je identifikátor poľa.

Špecifikátor typu špecifikuje typ prvkov deklarovaného poľa. Prvky poľa nemôžu byť funkciami a prvkami void.

Konštantný výraz v zátvorkách určuje počet prvkov v poli. Const-expression možno vynechať pri deklarovaní poľa v nasledujúcich prípadoch:

Po deklarácii sa pole inicializuje;

Pole je deklarované ako formálny parameter funkcie.

V jazyku C sú definované iba jednorozmerné polia, ale keďže prvkom poľa môže byť pole, možno definovať aj viacrozmerné polia. Sú formalizované ako zoznam konštantných výrazov za identifikátorom poľa, pričom každý konštantný výraz je uzavretý vo vlastných hranatých zátvorkách.

Každý konštantný výraz v hranatých zátvorkách definuje počet prvkov v danom rozmere poľa, takže deklarácia dvojrozmerného poľa obsahuje dva konštantné výrazy, trojrozmerný atď. Všimnite si, že v C má prvý prvok poľa index 0.

Char mass - číslovanie prvkov začína od 0, t.j. Prvky tohto poľa sa nazývajú hmotnosť, hmotnosť a sú v nich uložené čísla 11, 22, 33. Niekde v programe možno prvku priradiť hodnotu, napríklad hmotnosť = 210. Je možné nepriradiť hodnoty k prvkom.

Napríklad reťazcová premenná alebo pole obsahujúce reťazec znakov

Znak = „Ahoj“ definuje 6 prvkov, hoci obsahuje iba päť znakov. Šiestym prvkom je riadiaci znak, ktorý sa pridáva na koniec riadku \ 0.

Pole znakov možno deklarovať aj bez zadania počtu prvkov.

Napríklad,

Char str = "deklarácia poľa znakov"

Výrazy a priradenia

Operandy a operácie

Kombinácia operačných znakov a operandov, ktorá vedie k špecifickej hodnote, sa nazýva výraz. Znaky operácií určujú akcie, ktoré sa majú vykonať na operandoch. Každý operand vo výraze môže byť výraz. Význam výrazu závisí od umiestnenia znakov operácie a zátvoriek vo výraze, ako aj od priority operácií.

V jazyku SI je priradenie tiež výraz a hodnota takéhoto výrazu je hodnota, ktorá je priradená.

Operand je konštanta, literál, identifikátor, volanie funkcie, výraz dolného indexu, výraz výberu položky alebo zložitejší výraz vytvorený kombináciou operandov, operačných znakov a zátvoriek. Každý operand, ktorý má konštantnú hodnotu, sa nazýva konštantný výraz. Každý operand má svoj typ.

Na vloženie čísla do premennej (registra) v jazyku C existuje operátor priradenia “ = “. Tento symbol v C znamená vypočítať výsledok toho, čo je napravo od operátora priradenia a vložiť tento výsledok do umiestnenej premennej doľava operátor priradenia.

1.PORTB=PINB+34; / * Tento riadok v C znamená Vezmite (prečítajte) hodnotu premennej (zaregistrujte) PINB, potom k nej pridajte číslo 34 a výsledok vložte do premennej PORTB * /

2. PREMENNÁ = PINK; / * Tento riadok v C znamená zobrať (prečítať) hodnotu premennej (zaregistrovať) PINC a vložiť výsledok do premennej s názvom PREMENNÁ * /
3. Riadok, kde je premenná naľavo od „=“, ale cez znamienko & PORTB & = 0x23; v C znamená - prečítať obsah premennej PORTB, potom vykonať "bitový (bitový) logický AND" medzi načítanou hodnotou a číslom 0x23 a umiestniť (zapísať, priradiť) výsledok do premennej PORTB 4. Riadok, kde premenná je hneď naľavo od „=“ PORTB = 0x23; v C znamená - bez prečítania obsahu premennej PORTB jej priraďte hodnotu 0x23, čím zničíte to, čo tam bolo predtým.
Namiesto & "AND" (AND - iba 1 a 1 dávajú 1) môžu existovať iné bitové logické operácie: | "OR" (ALEBO len 0 a 0 dáva 0) ^ "Exkluzívne OR" (XOR zmení bit opačný k "1") ~ "reverzné bity" (INV zmení bity registra na opačné znaky) a aritmetické operácie: + - * /%
S operátorom priradenia sa používajú skratky:
DLHÝ ZÁZNAM VÝZNAM ZNÍŽI NA
x = x + 1; pridať 1 x ++; alebo ++ x;
x = x - 1; odčítať 1 X--; alebo -x;
x = x + y; pridať y x + = y;
x = x - y; odčítať y x - = y;
x = x * y; vynásobte y x * = y;
x = x/y; deliť y x/ = y;
x = x % y; zvyšok divízie x % = y;
X--; odčítať 1 x = 1;
x ++; pridať 1 x+ = 1;

V C existujú operácie, ktoré menia hodnotu premennej bez operátora priradenia:

PORTA ++;/ * Tento riadok v C znamená Vezmite hodnotu premennej PORTA, pridajte k nej 1 a výsledok zapíšte späť do PORTA. Prírastok registrovať PORTA * /

PORTC--;/ * Tento riadok v C znamená opak! Dekrementovať- odpočítajte 1 od hodnoty registra PORTC * /

Keď sa vo výraze použije prírastok alebo zníženie, je dôležité, kde sa pred premennou alebo za premennou objavia dva znaky + alebo -:

a = 4; b = 7; a = b ++; / * Tento riadok v C znamená: vezmite hodnotu b, priraďte ju k a, potom pridajte 1 k b a výsledok uložte do b. Teraz a bude obsahovať číslo 7, b bude obsahovať číslo 8*/a = 4; b = 7; a = ++ b; / * Tento riadok v C znamená: vezmite hodnotu premennej b, potom k nej pridajte 1 a výsledok uložte do b a rovnaký výsledok priraďte premennej a. Teraz bude a obsahovať číslo 8 a b bude obsahovať číslo 8 * / 1.2 .2 Aritmetické operácie v C x + y // sčítanie x - y // odčítanie x * y // násobenie x / y / * delenie. Ak sú čísla celé čísla, výsledkom je celé číslo s odstránenou zlomkovou časťou – nezaokrúhlené. Tie. ak výsledkom delenia je 6,23411 alebo 6,94, výsledkom bude iba celé číslo 6. Ak čísla s pohyblivou rádovou čiarkou, teda plávajúcou alebo dvojitou, sú zapísané s bodkou a číslom za bodkou, výsledkom bude číslo s pohyblivou rádovou čiarkou bez zahodenia zlomkovej časti 131,9739 / 6,18 dá 21,355 * / x% y // vypočítajte zvyšok celočíselného delenia Príklady:

X< y // X меньше Y
x> y // viac
X<= y // меньше или равно
x> = y // väčšie alebo rovné
x == y // sa rovná
= y / * nerovná sa Výsledok vykonania týchto operátorov: "pravda" je "1" (presnejšie "nie je nula"), "nepravda" je "0". Hodnoty uložené v premenných (v registroch)
NS
a pri Nemeň. Hodnoty uložené (alebo obsiahnuté) v premenných sa zoberú (načítajú) a porovnajú * /

1.2.5 Logické operácie:

|| // "ALEBO" - iba "false" a "false"

// dať false

&& // "AND" - iba "pravda" a "pravda"
// dajte "true"

! // "NOT" - logická negácia

Výsledkom logickej operácie NIE JE ČÍSLO, ale logická hodnota „pravda“ alebo „nepravda“.

Pre logické operácie && a || berú sa výsledky výrazov naľavo a napravo od znaku operácie prevedené na pravdivé alebo nepravdivé a určí sa logický výsledok operácie.

Kompilátor skonvertuje výsledok „true“ na 1 a nie na iné číslo ako 0.

Logické operácie môžu kombinovať niekoľko podmienok, ktoré sa majú testovať.

Napríklad:

ak((výraz1) && ((výraz2) || (výraz3)))
{ / * Programový kód sa tu spustí, ak:

Výraz1 "Pravda" (znamená nie nula) a aspoň jeden z výrazov 2 a 3 je tiež "Pravda" (znamená nie nula).
} ;

1.3. Použité konštrukcie v C

1.ak(){} inak(); ideálny dizajn, ak potrebujete vykonať nejakú časť programu s alebo bez akýchkoľvek podmienok:

} inak(voliteľný konštrukčný prvok, bez neho konštrukcia vyzerá takto:

ak (výraz) (kód C / * vykonajte tento kód, ak výraz"pravda" - t.j. výsledok jeho výpočtu nie je nula * /
};

ak(PINB.5) (vykonanie kódu C);
/* ak na vetve PB5 je "1" (nie "0" znamená "pravda") a potom program vykoná kód a ak má "0" (čo znamená "false"), tak to neurobí, ale jednoducho prejde na ďalší riadok * /

2.zatiaľ() (); podmienená slučka (slučka s podmienkou) - používa sa, ak potrebujete počas vykonávania vykonať nejaký programový kód (existuje,
"pravda" znamená "nie nula") nejaká podmienka, výsledok vyhodnotenia výrazu:

zatiaľ čo ( výraz ) (Kód C / * vykoná tento kód, ak je výraz "pravda" - to znamená, že výsledok jeho vyhodnotenia nie je nula. Počas vykonávania tohto kódu sa nekontroluje pravdivosť výrazu. Po vykonaní kódu sa dôjde k prechodu na čiaru zatiaľ čo znova skontrolujte, či je výraz pravdivý * /
};

Napríklad:

zatiaľ čo(PINA.6) (spustenie kódu C);
/* zatiaľ čo na vetve PA6 je "1" (nie "0" znamená "pravda"), potom program vykoná kód a znova skontrolujte, či na PA6 * / Ak sa bit_6 zmenil na "0", program prejde zapnuté bez vykonania toho, čo je v ()

Cyklus zatiaľ čo má možnosť

Robiť - kým

pri ktorom sa kód v () vykoná minimálne raz bez ohľadu na to, či je podmienka pravdivá v zátvorkách:

do (C kód / * vykonajte tento kód raz, ak je výraz "pravda" - to znamená, že výsledok jeho vyhodnotenia nie je nula - znova spustite kód od začiatku, a tak ďalej, kým výraz nie je pravdivý * / ) while ( výraz); Cykly pre (;;) a while () sa často používajú takto: while (1); pre (;;); / * Takto napísané tieto cykly znamenajú: MK vykoná túto linku, kým je napájanie, nedochádza k žiadnemu resetu ani k prerušeniu. Keď dôjde k prerušeniu, program prejde k obsluhe prerušenia a (ak nie je prechod na iné miesto v programe v obsluhe), po dokončení kódu obsluhy sa opäť vráti do tohto cyklu. * / while (1) (kód programu); pre (;;) (kód programu); 4.pre (;;) (); - tento cyklus vám umožňuje vykonať časť programu požadovaný počet krát:

char i; / * deklarácia premennej pre pre toto je obyčajná premenná C, a preto môže mať akýkoľvek platný názov, ktorý chcete, a zadajte * /

pre(i = 5; i<20; i+=4) {
C kód / * Najprv sa testovací výraz i určí ako „pravda“ alebo „nepravda“<20. Так как переменной i присвоено значение 5 то контрольное выражение "истинно" и код цикла pre sa prvýkrát vykoná pre i = 5, potom výrazom i + = 4 sa i stane 9, teraz sa znova skontroluje pravdivosť (spravodlivosť, vykonanie) kontrolného výrazu i<20 и так как 9<20 код цикла pre sa vykoná znova, ale pre i = 9. Toto bude pokračovať, kým výsledok vyhodnotenia kontrolného výrazu nebude „pravda“. Keď sa výsledok stane "false", program opustí cyklus. pre bez vykonania kódu. * /
};

i = 5 je počiatočný výraz, čo bude v premennej na začiatku i.Číslo 5 je len príklad, môže to byť tak, ako to umožňuje deklarácia typu premennej i, v našom prípade je to tak char vo väčšine kompilátorov je to štandardne typ znaku bez znamienka - môže ukladať čísla od 0 do 255

i< 20 - контрольное выражение. Может быть с разными операторами отношения, len dôležité aby sa v priebehu cyklu raz stala "lož" - inak sa cyklus "zacyklí" t.j. nikdy neskončí.

i + = 4 je počítadlo alebo zmena premennej slučky. Zvyčajne toto ja ++ tie. 1 sa pridá do premennej každý "beh" slučky. Ale opäť to môže byť to, čo potrebujete.

Počiatočný stav- môže byť akýkoľvek výraz platný v C, ktorého výsledkom je celé číslo.

Kontrolný výraz- určuje, ako dlho sa bude cyklus vykonávať.

Počítadlo- ukazuje, ako sa počiatočný výraz mení pred každým vykonaním novej slučky.

Výraz- možno nie len premenná, ale funkcia iných premenných, napríklad:

i = (7 + i * 4) alebo i = (funkcia iných premenných).

5. prepínač() (); - operátor s viacerými možnosťami výberu, umožňuje výber z niekoľkých možností.

Výraz za kľúčovým slovom switch v zátvorkách môže byť akýkoľvek výraz platný v C a musí to byť celočíselná hodnota. Význam tohto výrazu je kľúčový pri výbere z viacerých možností. Telo príkazu switch pozostáva z niekoľkých príkazov označených kľúčovým slovom case, za ktorým nasleduje konštantný výraz. Všetky konštantné výrazy v príkaze switch musia byť jedinečné. Okrem výrokov označených kľúčovým slovom case môže existovať, ale určite jeden, fragment označený predvoleným kľúčovým slovom. Zoznam operátorov môže byť prázdny alebo môže obsahovať jeden alebo viac operátorov. Okrem toho príkaz switch nemusí uzatvárať postupnosť príkazov v zložených zátvorkách.

Príkaz switch sa vykoná takto:

Vyhodnocuje sa výraz v zátvorkách;

Vypočítané hodnoty sa postupne porovnávajú s konštantnými výrazmi po kľúčových slovách veľkých a malých písmen;

Ak sa jeden z konštantných výrazov zhoduje s hodnotou výrazu, potom sa riadenie prenesie na operátor označený zodpovedajúcim prípadom kľúčového slova.

Ak sa žiadny z konštantných výrazov nerovná výrazu, potom sa riadenie odovzdá operátorovi označenému predvoleným kľúčovým slovom a ak chýba, riadenie sa odovzdá ďalšiemu operátorovi po prepnutí.

Všetky príkazy medzi počiatočným príkazom a koncom tela sa vykonajú bez ohľadu na kľúčové slová, pokiaľ jeden z príkazov neprenáša riadenie z tela príkazu switch. Je teda na programátorovi, aby sa v prípade potreby postaral o výstup z puzdra. Najbežnejším použitím je príkaz break.

prepínač(výraz) (

prípad 5: C kód
/ * tento kód sa vykoná, ak je výsledok vyhodnotenia výrazu 5, je to práca operátora prepínač skončí * /
prestávka;

prípad -32: C kód
/ * tento kód sa vykoná, ak sa výraz vyhodnotí ako záporné číslo -32. Toto je práca operátora. prepínač skončí * /
prestávka;

prípad "G": C kód
/ * tento kód sa vykoná, ak sa výsledok vyhodnotenia výrazu rovná číslu zodpovedajúcemu znaku G v tabuľke ASCII. prepínač skončí * /
prestávka;

predvolene: C kód
/ * tento kód sa vykoná, ak výsledok vyhodnotenia výrazu nie je ani 5 ani -32 ani "G", ako aj po vykonaní kódu nie
mať na konci prestávku;

Toto je práca operátora. prepínač skončí * /
};

/* prepínač dokončené - vykoná sa ďalší programový kód * /

prípad- môže byť toľko, koľko je potrebné, aby program fungoval rýchlejšie, najpravdepodobnejšie možnosti by mali byť umiestnené vyššie.

predvolená- nevyžaduje sa. Môže byť umiestnený nie na konci.

prestávka;- ak ho nepoužívate, potom program po nájdení požadovanej možnosti splní nasledujúce podmienky prípad.

6.ísť do- prevádzkovateľ bezpodmienečnej (okamžitej) vetvy.

Príkaz goto prenáša riadenie na príkaz označený label-name. Tagovaný príkaz musí byť v rovnakej funkcii ako príkaz goto a použitý tag musí byť jedinečný, t.j. jeden názov-návestia nemožno použiť pre rôzne príkazy programu. LabelName je identifikátor. nejaký kód nášho programu v C ... mesto_5: / * sa sem dostaneme po vykonaní programového riadku goto mesto_5 * / kód sa vykoná po goto mesto_5; ... nejaký kód nášho programu v C ... mesto_1: / * sa sem dostaneme po vykonaní programového riadku goto mesto_1 * / kód sa vykoná po goto mesto_1; ... nejaký kód nášho programu v C ... goto mesto_1; / * prejdite na miesto programu, kde je na začiatku riadku napísané mesto_1: * / ... nejaký kód nášho programu v C .. goto mesto_5; / * prejdite na miesto programu, kde je na začiatku riadku napísané mesto_5: * / ... nejaký kód nášho programu v C.

Ukážka programu C

/*odsek 1 hlavička programu

Je naformátovaný ako komentár a zvyčajne obsahuje informácie

O názve, účele, verzii a autorovi programu
- krátky popis algoritmu programu
- vysvetlenie účelu záverov MK a spôsobu jeho činnosti, poistky
- kompilátor, nástroje a ich verzie
- ďalšie informácie, ktoré považujete za užitočné uviesť

// bod 2 vrátane externých súborov

#include

/ * pred kompiláciou vloží preprocesor kompilátora namiesto tohto riadku obsah (text). hlavičkový súbor"hlavička" mega16.h - tento súbor obsahuje zoznam registrov dostupných v MK ATmega16 a zhodu ich mien s ich fyzickými adresami v MK. Mali by ste špecifikovať, ktorý MK používate vo vlastnostiach projektu v kompilátore * /

#include
/ * pred kompiláciou vloží preprocesor kompilátora namiesto tohto riadku text "hlavička" delay.h - tento súbor obsahuje funkcie na vytváranie prestávok v programe. Teraz, aby ste sa zastavili, stačí napísať: * /

/ * pauza N (počet) mikrosekúnd. Musí to byť konštanta - NIE premenná !!!
napríklad:

delay_us (12 + 7 * 3);
delay_us (117);

delay_ms (x); / * pauza x milSec
x - môže byť premenná, výraz alebo číslo
0 až 65535 (typ unsigned int)
napríklad:

delay_ms (3280);
delay_ms (premenná);
delay_ms (premenná * 4 + 760); * /

//bod 3 užívateľské definície

#definovať ADC_BUSY PINB.0
#definovať NCONVST PORTB.1
/ * po týchto dvoch riadkoch pred kompiláciou nahradí preprocesor kompilátora v texte programu ADC_BUSY za PINB.0 a NCONVST za PORTB.1
Namiesto toho, aby ste si pamätali, že rušný výstup AD7896 je pripojený k vašej vetve PB0, môžete skontrolovať význam zmysluplného konceptu ADC_BUSY - "ADC je zaneprázdnený". A namiesto ovládania abstraktnej nohy PB1 (cez PORTB.1) môžete ovládať - NCONVST - "začať novú konverziu AD".

#define – Je to pohodlné! Ale vôbec nie.
*/

Napríklad:

#definovať invbit (p, n) (p = p ^ bit (n))

Premenné sú tu "p" a "n". Teraz invertujte bit 5 v registri PORTB stačí do programu napísať:

invbit ( PORTB,5);

Navyše, v pravej časti môžu byť tieto premenné prepojené aritmetickými operáciami a takýchto premenných môže byť veľa.

Algoritmus

Vývoj akéhokoľvek programu začína vývojom algoritmu. V našom prípade je algoritmus nasledovný: po počiatočných nastavovacích operáciách musí mikrokontrolér vstúpiť do nepretržitého cyklu, počas ktorého sa musí dotazovať na vstup pripojený k nášmu tlačidlu a v závislosti od jeho stavu ovládať LED diódy. Poďme si to popísať podrobnejšie.

C program

Pri vytváraní C programu používame kompilátor C PRO for AVR. Toto softvérové ​​prostredie je špeciálne navrhnuté pre vývoj C programov pre mikrokontroléry AVR.

Akékoľvek moderné programovacie prostredie nepracuje len s textom programu, ale aj s tzv projektu.

Úlohou programátora je len napísať text programu, pre ktorý je v projekte vyčlenený samostatný súbor s príponou „c“. Kompilátor preloží zdrojový program do hexadecimálnej sústavy (vytvorí Hex súbor), aby ho vložil (firmvér) do pamäte mikrokontroléra.

V budúcnosti tiež podrobne zvážime proces inštalácie a prácu so softvérovým prostredím C PRO for AVR. Teraz veríme, že bol nainštalovaný a spustený.

Ihneď po spustení kompilátora sa všetky parametre vrátia na predvolené hodnoty (všetky interné zariadenia sú vypnuté, interné I/O porty sú nastavené na vstup, je použitý interný oscilátor s taktovacou frekvenciou 4 MHz). To zodpovedá počiatočný stav mikroprocesora po reštarte systému. Nebudeme sa dotýkať tých parametrov, ktorých sa dotýkať nemusíme (štandardne ich necháme).

Program C vyzerá takto:

1 #Zahrnúť< Atmega 128.h >

2 Bit oldstate; // stará štátna vlajka

3 Void main () (

4 DDB0 bit = 0; // nastavenie pinu PB0 ako vstupu

5 DDRC = 0xFF; // nakonfigurujte PC ako výstup

6 PORTC = 0xAA; // zdrojový kód sa zapíše na port C

9 If (Tlačidlo (& PINB, 0,1,1)) (// detekcia logickej jednotky

10 Starý štát = 1; // aktualizujte príznak

11 if (oldstate && Button (& PINB, 0,1,0)) (// detekcia prechodu z 1 na 0

12 PORTB = ~ PORTB; // invertovať PORTC

13 starý stav = 0; // aktualizujte príznak

14) Zatiaľ čo (1); // nekonečný cyklus

Bloková schéma zariadenia je uvedená v prílohe A.

Tento mikroprocesorový systém pozostáva z nasledujúcich jednotiek: mikroprocesor, RAM, ROM, programovateľné paralelné rozhranie, analógovo-digitálny prevodník, časovač, displej.

Analógové signály zo snímačov sa privádzajú na vstupy analógového multiplexora zabudovaného v ADC, ktorý v každom časovom intervale prepína jeden zo signálov na vstup analógovo-digitálneho prevodníka.

Analógovo-digitálny prevodník sa používa na prevod analógového signálu na digitálny kód, s ktorým pracuje mikroprocesor.

Mikroprocesor pristupuje k ADC cez programovateľné paralelné rozhranie. Číta informácie z výstupov ADC a vkladá ich do pamäťovej bunky RAM. Okrem toho MP na základe informácií prijatých zo snímača tlaku oleja na výstupe stanice vypočítava riadiacu činnosť. Táto hodnota sa prenáša vo forme digitálneho kódu do pohonu.

RAM slúži na dočasné ukladanie informácií prijatých zo senzorov a medzivýsledkov mikroprocesorových výpočtov.

Systémový softvér je uložený v pamäti ROM (Read Only Memory). Operáciu čítania riadi mikroprocesor.

Program, ktorý je uložený v ROM, zabezpečuje nasledujúce systémové operácie:

Sekvenčný prieskum senzorov;

Riadenie analógovo-digitálnej konverzie analógového signálu;

Regulácia tlaku oleja;

Indikácia a signalizácia;

Reakcia na stratu výživy.

Vývoj systémových algoritmov

Bloková schéma algoritmu je uvedená v prílohe B.

Inicializácia

V tomto štádiu sa riadiace slová zapisujú do RSS programovateľného paralelného rozhrania. PPI DD10 pracuje v nulovom režime. Porty fungujú nasledovne: port A - vstup, port B - výstup, port C - výstup. PPI DD1 pracuje v nulovom režime. Porty fungujú nasledovne: port A - výstup, port B - výstup, port C - výstup.

Dotazovanie senzorov

Analógové snímače sú dopytované ADC. Diskrétne senzory sú interogované mikroprocesorom cez port A PPI 1.

Ukladanie do pamäte RAM

Výsledky získané po interogácii senzorov sa vložia do pamäte s náhodným prístupom na dočasné uloženie.

Kontrolný vplyv

Mikroprocesorový systém analyzuje prijaté dáta a generuje digitálnu riadiacu akciu.

Vypracovanie schematického diagramu

Schematický diagram zariadenia je uvedený v prílohe D.

Adresová zbernica je tvorená pomocou vyrovnávacieho registra a ovládača zbernice. Výber registra sa vykonáva pomocou signálu ALE mikroprocesora. Ovládač zbernice je potrebný na zvýšenie zaťažiteľnosti bajtu vyššieho rádu adresy.

Dátová zbernica je tvorená pomocou ovládača zbernice, ktorého výber sa uskutočňuje aplikáciou signálov DT/R a OE.

Systémová zbernica je tvorená cez dekodér DD10 napájaním kombinácie signálov M/IO, WR, RD.

Tabuľka 1 - Riadiace signály

Výber ROM, RAM a ďalších zariadení sa vykonáva pomocou riadkov A13-A15 adresovej zbernice prostredníctvom dekodéra. Bunky ROM sa nachádzajú na adrese 0000h.

Tabuľka 2 - Výber zariadení

Zariadenie

Voľba portu alebo registra riadiaceho slova PPI sa vykonáva cez linky A0, A1 adresovej zbernice. Diskrétne snímače sú napájané na vstupy portu A PA0-PA7 PPI DD12; na vstupy portu B - z ADC; LED diódy sú pripojené na vstupy portu C.

Analógový multiplexor sa používa na výber zariadenia, z ktorého sa čítajú informácie. Analógový multiplexer je zabudovaný do ADC. Bitová šírka ADC je rovnaká ako bitová šírka dátovej zbernice a je 8 bitov.

Rezistory R2-R4 sa používajú na konverziu jednotného prúdového signálu 4 ... 20 mA na napätie 1 ... 5V.

Etapy projektovania mikroprocesorových systémov

Mikroprocesorové systémy z hľadiska ich zložitosti, požiadaviek a funkcií sa môžu výrazne líšiť parametrami spoľahlivosti, množstvom softvéru, byť jednoprocesorové a viacprocesorové, postavené na jednom type mikroprocesorovej zostavy alebo viacerých atď. V tomto ohľade môže byť proces navrhovania modifikovaný v závislosti od požiadaviek na systémy. Napríklad proces navrhovania MPS, ktoré sa navzájom líšia obsahom ROM, bude pozostávať z vývoja programov a výroby ROM.

Pri návrhu viacprocesorových mikroprocesorových systémov obsahujúcich niekoľko typov mikroprocesorových zostáv je potrebné riešiť otázky organizácie pamäte, interakcie s procesormi, organizácie výmeny medzi systémovými zariadeniami a vonkajším prostredím, koordinácie fungovania zariadení s rôznymi prevádzkovými rýchlosťami atď. Nižšie je uvedená približná postupnosť fáz typických pre vytvorenie mikroprocesorového systému:
1. Formalizácia systémových požiadaviek.
2. Vývoj štruktúry a architektúry systému.
3. Vývoj a výroba hardvéru a softvéru pre systém.
4. Komplexné ladiace a akceptačné testy.

Fáza 1. V tejto fáze sa vypracujú externé špecifikácie, vymenúvajú sa funkcie systému, formalizujú sa referenčné podmienky (TOR) systému, zámery vývojára sú formálne stanovené v oficiálnej dokumentácii.

Etapa 2. V tejto etape sa určia funkcie jednotlivých zariadení a softvéru, vyberú sa mikroprocesorové zostavy, na základe ktorých bude systém implementovaný, určí sa súhra hardvéru a softvéru, časové charakteristiky jednotlivých zariadení a programov.

Fáza 3. Po definovaní funkcií implementovaných hardvérom a funkcií implementovaných programami, obvodoví inžinieri a programátori súčasne pristúpia k vývoju a výrobe prototypu a softvéru. Vývoj a výroba zariadení pozostáva z vývoja štrukturálnych a schematických diagramov, výroby prototypu a autonómneho ladenia.
Vývoj programu pozostáva z vývoja algoritmov; písanie textu zdrojových programov; preklad zdrojových programov do objektových programov; offline ladenie.

Fáza 4. Pozri Komplexné ladenie.

V každej fáze návrhu MPS môžu ľudia spôsobiť poruchy a urobiť nesprávne rozhodnutia o návrhu. Okrem toho sa môžu vyskytnúť hardvérové ​​​​chyby.

Zdroje chýb

Uvažujme o zdrojoch chýb v prvých troch fázach návrhu.

Fáza 1. V tejto fáze môžu byť zdrojom chýb: logická nekonzistentnosť požiadaviek, opomenutia, nepresnosti algoritmu.

Etapa 2. V tejto fáze môžu byť zdrojom chýb: vynechanie funkcií, nejednotnosť v protokole interakcie medzi hardvérom a programami, nesprávny výber zostáv mikroprocesorov, nepresnosti algoritmov, nesprávna interpretácia technických požiadaviek, vynechanie niektorých informačných tokov. .

Etapa 3. V tejto fáze môžu byť zdroje chýb: pri vývoji hardvéru - vynechanie niektorých funkcií, nesprávna interpretácia technických požiadaviek, chyba v schémach synchronizácie, porušenie pravidiel návrhu; pri výrobe prototypu - poruchy komponentov, poruchy inštalácie a montáže; pri vývoji softvéru - vynechanie niektorých funkcií technickej špecifikácie, nepresnosti v algoritmoch, nepresnosti v kódovaní.

Každý z uvedených zdrojov chýb môže spôsobiť veľké množstvo subjektívnych alebo fyzických porúch, ktoré je potrebné lokalizovať a odstrániť. Detekcia chýb a lokalizácia porúch sú náročné z niekoľkých dôvodov: po prvé kvôli veľkému počtu porúch; po druhé, kvôli tomu, že rôzne poruchy sa môžu prejaviť rovnakým spôsobom. Keďže neexistujú žiadne modely subjektívnych chýb, táto úloha nie je formalizovaná. Existujú určité úspechy vo vývoji metód a nástrojov na detekciu chýb a lokalizáciu fyzických porúch. Tieto metódy a nástroje sa široko používajú na kontrolu prevádzkového stavu a diagnostiku porúch diskrétnych systémov počas ich navrhovania, výroby a prevádzky.

Subjektívne chyby sa líšia od fyzických v tom, že po zistení, lokalizácii a náprave už nevznikajú. Ako však vyplýva zo zoznamu zdrojov chýb, subjektívne chyby môžu byť zavedené už vo fáze vývoja špecifikácie systému, čo znamená, že aj po najdôkladnejšom testovaní systému z hľadiska zhody s jeho vonkajšími špecifikáciami možno nájsť subjektívne chyby v systém.

Proces navrhovania je iteratívny proces. Poruchy odhalené pri preberacej skúške môžu viesť k úpravám špecifikácií a tým aj k začiatku návrhu celého systému. Chyby je potrebné odhaliť čo najskôr, preto je potrebné kontrolovať správnosť projektu v každej fáze vývoja.

Kontrola správnosti projektu

Hlavné metódy kontroly správnosti návrhu sú nasledovné: overovanie - formálne metódy preukazovania správnosti projektu; modelovanie; testovanie.

Existuje veľa prác na overení softvéru, firmvéru, hardvéru. Tieto práce sú však teoretického charakteru. V praxi stále využívajú modelovanie a testovanie správania objektov.

Pre kontrolu správnosti projektu v každej fáze návrhu je potrebné vykonať modelovanie na rôznych úrovniach abstraktnej reprezentácie systému a testovaním skontrolovať správnosť implementácie daného modelu. Vo fáze formalizácie požiadaviek je obzvlášť potrebná kontrola správnosti, pretože mnohé ciele návrhu nie sú formalizované alebo ich v zásade nemožno formalizovať. Funkčnú špecifikáciu môže preskúmať tím odborníkov alebo ju môže simulovať a overiť skúšobnou prevádzkou, aby sa zistilo, či sa dosahujú požadované ciele. Po schválení funkčnej špecifikácie sa začína vývoj programov funkčných skúšok, ktorých cieľom je stanoviť správne fungovanie systému v súlade s jeho funkčnou špecifikáciou. V ideálnom prípade sú vyvinuté testy, ktoré sú úplne založené na tejto špecifikácii a poskytujú možnosť testovať akúkoľvek implementáciu systému, ktorá je deklarovaná ako schopná vykonávať funkcie špecifikované v špecifikácii. Táto metóda je úplným opakom iných, kde sú testy postavené vo vzťahu ku konkrétnym implementáciám. Funkčná validácia nezávislá od implementácie je zvyčajne lákavá len teoreticky, ale nemá žiadnu praktickú hodnotu kvôli vysokej miere všeobecnosti.

Automatizácia únavnej práce pri písaní testovacích programov nielen skracuje dĺžku obdobia návrhu / ladenia získaním testovacích programov vo fáze návrhu (pretože ich možno generovať ihneď po vytvorení systémových požiadaviek), ale tiež umožňuje dizajnérovi meniť špecifikácie. bez obáv z prepisovania všetkých testovacích programov. V praxi má však vývoj testov často nižšiu prioritu ako projekt, takže testovacie programy sa objavujú oveľa neskôr ako ukončenie projektu. Ale aj keď sa ukáže, že podrobné testy sú pripravené, je často nepraktické ich spustiť na simulátore, pretože podrobné modelovanie si vyžaduje veľa peňazí na vývoj programu a výpočtový čas, v dôsledku čoho sa väčšina ladiacich prác musí odložiť na je vytvorený prototyp systému.

Po zistení chyby je potrebné lokalizovať jej zdroj, aby sa mohla opraviť na príslušnej úrovni abstraktnej reprezentácie systému a na vhodnom mieste. Nesprávna identifikácia zdroja chyby alebo vykonanie opráv na inej úrovni abstraktnej reprezentácie systému vedie k tomu, že informácie o systéme na vyšších úrovniach sa stávajú chybnými a nemožno ich použiť na ďalšie ladenie pri výrobe a prevádzke systému. systém. Napríklad, ak sa porucha zavedie do zdrojového kódu programu napísaného v jazyku symbolických inštancií a oprava sa vykoná v objektovom kóde, potom sa v objektovom kóde vykoná ďalšie ladenie programu; v tomto prípade sú všetky výhody písania programu v jazyku symbolických inštancií anulované.

Automatizácia technických zariadení prevzala veľkú časť celej organizácie výroby. Používajú sa všade v obrábacích strojoch, strojoch a mechanizmoch, robotických systémoch. Nové technológie výrazne zvyšujú produktivitu práce, znižujú vplyv ľudského faktora na riziká vo výrobe. Zvyšuje sa aj technická úroveň a kvalita výrobkov. Mikroprocesorové systémy boli kedysi inovatívnou technológiou. Teraz je to však už bežné, pretože zariadenia vyrobené pomocou mikroprocesorov majú vyšší výkon v porovnaní so zariadeniami vyrobenými na samostatných logických obvodoch s ekonomickým prínosom prvého.

Štandardizácia procesu vývoja zjednodušuje analýzu a výskum v tejto oblasti. Zviditeľňuje aj aktuálny stav a možný výsledok. Dnešné vstavané systémy založené na mikroprocesoroch využívajú programovateľné logické integrované obvody (FPGA) a počítačom podporované výrobné systémy na rýchly a organizovaný dizajn. Ladenie a testovanie v reálnom čase je možné aj s FPGA. Každoročná aktualizácia CAD vám umožňuje tráviť stále menej času monotónnou a jednoslabičnou prácou, pričom sa vyhýbate zjavným chybám. To umožňuje abstrahovať do vyšších úrovní systému a riešiť zložité problémy.

Proces vývoja vstavaných mikroprocesorových systémov možno znázorniť ako dve cesty po sebe nasledujúcich fáz návrhu. Prvou cestou je vývoj hardvérovej časti vstavaného mikroprocesorového systému. Druhou cestou je návrh softvéru (obr. 1).

Obrázok 1. Fázy návrhu

Nie sú však potrebné všetky kroky trasy. Systémový hardvér nemusí byť počas vývoja simulovaný. Preto je možné vylúčiť niektoré kroky: príprava špecifikácie simulácie, generovanie modelov, funkčná a časová simulácia. Treba mať na pamäti, že modelovanie hardvérovej časti systému zvyšuje efektivitu procesu návrhu ako celku vďaka skoršiemu odhaleniu možných chýb a ich odstráneniu.

Typické kroky návrhu mikroprocesorových systémov zahŕňajú:

  1. Formalizácia rôznych systémových požiadaviek. Je potrebné vypracovať externé špecifikácie, referenčné podmienky (TOR) pre systém, poznámky k obrazu systému vývojárom v dokumentácii, sú uvedené funkcie systému.
  2. Vývoj štruktúry a architektúry prvkov systému. Je potrebné určiť interakciu medzi hardvérom a softvérom, funkcie periférií a softvérových shellov, vybrať mikroprocesorové riešenia, na základe ktorých bude systém implementovaný, a určiť časové charakteristiky.
  3. Vývoj a výroba hardvéru a softvéru pre systém. Je potrebné vypracovať štruktúru a schematické diagramy, vyrobiť prototyp a odladiť v podmienkach základných prevádzkových režimov. Vývoj softvéru by mal pozostávať z algoritmov, písania zdrojového kódu, prekladu zdrojových programov do objektových programov, ladenia softvéru a simulácie.
  4. Všeobecné ladiace a akceptačné testy v pracovných podmienkach.

Ľudský faktor umožňuje poruchy a nesprávne konštrukčné rozhodnutia. V zariadeniach sú aj hardvérové ​​chyby. V jednotlivých fázach sú možné napríklad tieto zdroje chýb:

Fáza 1. Logická nekonzistentnosť požiadaviek, opomenutia, nepresnosti algoritmu.

Etapa 2. Vynechanie funkcií, vynechanie niektorých informačných tokov, nejednotnosť protokolu interakcie medzi hardvérom a programami, nesprávne definovanie technických požiadaviek, nesprávny výber mikroprocesorových riešení, nepresnosti algoritmov.

Fáza 3. Pri vývoji hardvéru - vynechanie niektorých funkcií, nesprávna interpretácia technických špecifikácií, chyby v synchronizačných schémach, porušenie pravidiel návrhu; pri vývoji softvéru - vynechanie niektorých funkcií technickej špecifikácie, nepresnosti v algoritmoch, nepresnosti v kódovaní; pri výrobe prototypu - poruchy komponentov a periférií, poruchy inštalácie a montáže.

Každý z uvedených zdrojov chýb môže viesť k veľkému počtu fyzických alebo subjektívnych porúch, ktoré je potrebné ďalej identifikovať a odstrániť. Detekcia a lokalizácia poruchy je komplikovaná z niekoľkých dôvodov: po prvé, v dôsledku porúch ich môže byť niekoľko; po druhé, jednotnosť symptómov rôznych problémov. Keďže neexistujú žiadne modely subjektívnych chýb, táto úloha nie je formalizovaná. Riešenie je možné pomocou expertných systémov – databázy s existujúcimi problémami a ich riešením na základe praktických skúseností.

Subjektívne chyby sa líšia od fyzických v tom, že po zistení, lokalizácii a náprave už nevznikajú. Subjektívne chyby sa však môžu objaviť už vo fáze vývoja špecifikácie systému, čo znamená, že aj po najprísnejšom testovaní systému na zhodu s jeho špecifikáciami možno v systéme nájsť subjektívne chyby.

Proces navrhovania je iteratívny proces, čo znamená, že ak chyby nie sú úplne odstránené v jednej fáze, môžu sa objaviť v ďalšej. Chyby je potrebné odhaliť čo najskôr, preto je potrebné kontrolovať správnosť projektu v každej fáze vývoja. Napríklad chyby odhalené v záverečnej fáze preberania a dodania projektu môžu viesť k oprave špecifikácií, a teda k začiatku návrhu celého systému. Zmeny v technických špecifikáciách vedú k rovnakým dôsledkom (v dôsledku podhodnotenia a nedostatku informácií o systéme).

Hlavné metódy kontroly správnosti návrhu sú: overovanie, modelovanie a testovanie.

Verifikácia umožňuje pomocou blokov odhaliť nielen aktuálne chyby, ale aj potenciálne chyby, ktoré sa môžu objaviť v budúcich projektoch. Vyžaduje si to však samostatné technické zadanie a príslušné zručnosti a je vhodné pre veľké projekty. Na malých projektoch sa častejšie využíva modelovanie správania objektov a testovanie, pretože táto možnosť je nákladovo efektívna a nevyžaduje si veľa zdrojov.

Kontrola správnosti sa dosahuje v každej fáze návrhu potrebou vykonať modelovanie na rôznych úrovniach abstrakcií systému a testovaním skontrolovať správnosť implementovanej časti modelu. Funkčnú špecifikáciu možno modelovať a empiricky testovať, aby sa určil očakávaný výsledok. Môže ho analyzovať aj tím odborníkov. Po schválení funkčnej špecifikácie začína vývoj funkčných testov systému, aby sa zistilo správne fungovanie systému v súlade s jeho funkčnou špecifikáciou. Najefektívnejšie je vyvinúť testy založené výlučne na tejto špecifikácii, pretože umožňuje testovanie akejkoľvek implementácie systému schopnej vykonávať funkcie špecifikované v špecifikácii. Táto metóda je podobná ako pri iných, kde sú testy postavené vo vzťahu ku konkrétnym implementáciám, no presnejšie porovnáva očakávanie a výsledok vývoja.

Po zistení chyby je potrebné lokalizovať jej zdroj na opravu na príslušnej úrovni abstraktnej reprezentácie systému a na vhodnom mieste. Nesprávna identifikácia zdroja chyby alebo vykonanie úprav na inej úrovni abstraktnej reprezentácie systému vedie k tomu, že informácie o systéme na najvyššej úrovni sa stávajú chybnými a nemožno ich použiť na ďalšie ladenie pri výrobe a prevádzke systému. .

Automatizácia opakujúcej sa práce na vývoji testovacích programov skracuje dobu konštrukcie a ladenia tým, že prijíma testy skôr (pretože môžu byť generované ihneď po vytvorení systémových požiadaviek) a umožňuje dizajnérovi meniť špecifikácie bez prepisovania všetkých testovacích programov. V praxi má vývoj testov nižšiu prioritu ako projekt, takže testovacie programy sa objavujú oveľa neskôr ako ukončenie projektu.

Takže, berúc do úvahy nuansy mikroprocesorového dizajnu, môžete ľahko obísť „nástrahy“ vo vývoji. Použitie programovateľných logických integrovaných obvodov (FPGA) uľahčuje ladenie nevydanej dávky a umožňuje testovať projekt a opravovať chyby. A systémy počítačom podporovanej výroby (CAD) zjednodušujú vývoj tým, že umožňujú efektívnejšie prerozdeľovanie zdrojov.

Bibliografia:

  1. SibSUTI [Elektronický zdroj] / Navrhovanie mikroprocesora na FPGA - Režim prístupu: http://ict.sibsutis.ru/sites/csc.sibsutis.ru/files/courses/mps/mp.pdf– zadarmo. - dabovať. z obrazovky. - Jazyk ruský (dátum ošetrenia 22.12.2017).
  2. Zotov V. Embedded Development Kit - návrhový systém pre vstavané mikroprocesorové systémy založené na FPGA FPGA série od Xilinx. 2004. Číslo 3.

1. funkčné,dizajnu a architektúrymikroprocesorové zariadeniaa systémov

1.1. generálinformácie o mikroprocesorovej technológii

Základné pojmy adefiníciemikroprocesorová technológia

Mikroprocesory a mikropočítače sú masové produkty elektronického priemyslu. Znalosť základov mikroprocesorovej techniky je potrebná pre inžinierov akéhokoľvek profilu, najmä systémových inžinierov, dizajnérov a procesných inžinierov počítačových systémov (CS).

Mikroprocesory (MP) sú široko používané v moderných leteckých a elektronických zariadeniach (REU), technologických riadiacich systémoch, flexibilných automatizovaných a iných priemyselných odvetviach. Použitie MP má pozitívny vplyv na zvýšenie produktivity práce, zlepšuje kvalitu zariadení na rôzne účely. Vďaka použitiu MP a mikropočítačov v technických systémoch sa rozšírila funkčnosť zariadenia, zvýšila sa jeho spoľahlivosť a stabilita prevádzky a zlepšila sa kvalita spracovania informácií.

Perspektívy a možnosti využitia MP a mikropočítačov vo výpočtových systémoch ešte nie sú úplne odhalené. Výrobné technológie a architektúra MP sa neustále zdokonaľujú. Bitová kapacita moderného jednočipového MP teda dosahuje 64 bitov. Pri používaní MP a mikropočítačov by vývojári mali byť schopní posúdiť možnosti ich architektúry a technických charakteristík, ako aj ovládať programovacie jazyky rôznych úrovní. Assembler je široko používaný na vytváranie systémového softvéru. S cieľom zabezpečiť vysokú produktivitu programátorov sa úlohy spracovania údajov riešia pomocou jazykov na vysokej úrovni (napríklad C). Moderní počítačoví inžinieri potrebujú znalosti v oblasti architektúry MT a programovania elektronických zariadení v jazykoch rôznych úrovní.


Základné v mikroprocesorovej technike sú také pojmy ako: "mikroprocesor", "IS", "IC", "LSI", "VLSI", "sada mikroprocesorov LSI", "mikroprocesorové zariadenie", "mikroprocesorový systém", "mikroprocesorové zariadenia". "," mikropočítač "(všeobecné a špecializované)", vstavaný mikropočítač "," osobný počítač "," osobný počítač pre domácnosť "," profesionálny osobný počítač "," mikrokontrolér " atď.

Okrem toho mikroprocesorová technológia používa koncepty súvisiace s počítačovou technológiou, a to najmä „kmeň“, „zbernica“, „rozhranie“, „systémové rozhranie“, „periférne rozhranie“, „adaptér“, „protokoly“, „linka rozhrania“ atď.

Pri štúdiu softvéru v mikroprocesorovej technológii sa používajú všeobecné pojmy, ktoré sa v názve zhodujú s pojmami opisu softvéru v počítačovej technike, najmä „algoritmus“, „program“, „softvér“ atď.

Jedným z hlavných, základných pojmov mikroprocesorovej techniky je „mikroprocesor“.

Mikroprocesor- toto je komplikovanésoftvérovo riadené zariadenie,určené na spracovanie digitálnych informácií ariadenie procesu tohto spracovania vo forme jedného alebo viacerých integrálovmikroobvody s vyšším stupňom integrácie (BIS alebo SBIS).

Integrovaný mikroobvod (ANDPANI) je mikroelektronické zariadenie, ktoré vykonáva určitú funkciu prevodu, spracovania signálov a (alebo) akumulácie informácií, ktoré má veľkú vnútornú hustotu elektricky spojených prvkov (alebo prvkov a komponentov) a (alebo) kryštálov a je posudzované z hľadiska testovanie, dodávka a prevádzkové požiadavky produktov rádioelektroniky ako celku.

Polovodičový integrovaný obvod- integrovaný mikroobvod, ktorého všetky prvky a medziprvkové spojenia sú vytvorené vo vnútri a na povrchu polovodiča.

Digitálny integrovaný obvod- integrovaný mikroobvod určený na konverziu a spracovanie signálov, ktoré sa menia podľa zákona diskrétnej funkcie.

Stupeň integrácie- ukazovateľ stupňa zložitosti IC, ktorý je charakterizovaný počtom prvkov a komponentov, ktoré sú v ňom obsiahnuté. Stupeň integrácie je určený vzorcom k= lg N, kde k- koeficient, ktorý určuje stupeň integrácie, ktorého hodnoty sú zaokrúhlené na najväčšie celé číslo; N- počet prvkov a komponentov integrovaného obvodu.

Veľký integrovaný obvod (BIS)- integrovaný mikroobvod, ktorý obsahuje 500 alebo viac prvkov vyrobených pomocou bipolárnej technológie, alebo 1000 alebo viac prvkov vyrobených technológiou MOS, extra veľký integrálneschéma (SBIS)obsahuje nad prvkami.

SetBIS- súbor typov LSI, ktoré plnia rôzne funkcie, ktoré sú kompatibilné v architektúre, dizajne, elektrických parametroch a poskytujú možnosť ich spoločného využitia pri výrobe mikroprocesorovej techniky.

Súprava mikroprocesora (IPC)- súbor mikroprocesorových a iných IO, kompatibilných v architektúre, dizajne a elektrických parametroch a poskytujúcich možnosť ich spoločného použitia.

Mikroprocesor je opísaný mnohými parametrami, ktoré sú vlastné elektronickým zariadeniam (rýchlosť, spotreba energie, rozmery, hmotnosť, počet úrovní výkonu, spoľahlivosť, cena, typ puzdra, teplotný rozsah atď.), ako aj výpočtové možnosti (bitová hĺbka, príkaz alebo cyklus vykonávania mikropríkazov, počet interných registrov, prítomnosť úrovne mikroprogramu, typ zásobníkovej pamäte, zloženie softvéru atď.).


Mikroprocesorové zariadenie ( MPU) - funkčne a konštruktívnehotový výrobok, ktorý je schematický a konštruktívnypripojenie viacerých mikroobvodov vrátane jedného alebo viacerých mikroprocesorovurčený na vykonávanie jedného respviaceré funkcie: prijímanie, liečba,prenos, transformácia informácií a riadenie.

MPU má jednotné spojovacie charakteristiky (rozhranie, dizajn atď.) a funguje ako súčasť špecifického technického systému.

Mikroprocesorový systém ( MPS) - toto je veľké množstvofunkčné zariadenia, jedno zktoré majú mikroprocesor.

Mikroprocesor je jadrom tohto systému a plní funkcie centrálnej riadiacej jednotky a zariadenia na aritmeticko-logickú konverziu dát. Všetky zariadenia MPS majú štandardné rozhranie a sú pripojené k jedinej informačnej diaľnici.

Mikroprocesorová technológia - ide o mikroprocesory a výpočtové zariadeniazariadenia (VT) a automatiky na nich založené.

Toto sú najvšeobecnejšie koncepty výpočtovej techniky. Dnes sú takmer všetky VT postavené na báze mikroprocesorových zariadení.

Univerzálny mikropočítač - toto je mikropočítače, ktoré majú veľprevádzkové zdroje prispôsobené na zvládnutie rôznychčíselné a textové údaje a určené na použitie vo výpočtovej technikestredísk.

Toto je najbežnejšia trieda mikropočítačov, ktorá je základom pre osobné počítače.

Špecializované počítače - toto je Počítače určené na implementáciu určitéhošpecifický algoritmus:Fourierova transformácia, výpočet koreláciefunkcie aDR.

Sú to úzkoprofilové počítače s obmedzeným počtom systémových príkazov.

Vstavaný mikropočítač (mikroprocesorové zariadenie) - spracovateľská jednotkaúdaje aovládač určený na použitie v domácnostizariadenia, systémy riadenia procesov respovládanie, počítačové periférne zariadenia, kancelárska technika a pod.

Tieto počítače sa najčastejšie používajú v domácich spotrebičoch (televízory, rádiomagnetofóny, práčky atď.)

Osobný počítač (osobný počítač) - dialógový systémna individuálne použitie, predáva sa ďalejna báze mikroprocesoraznamená malé externé úložiskozariadenia a záznamníky údajov,ktoré poskytujú prístup ku všetkým zdrojom počítača pomocou pokročilého programovacieho systému v jazykoch vysokej úrovne.

Ide o malý a cenovo dostupný univerzálny mikropočítač určený na individuálne použitie. Osobné počítače pre domácnosť slúžiť ako domáce informačné centrum. Profesionálne osobnépočítačov sú určené na automatizáciu rôznych operácií spracovania veľkého množstva informácií na pracovisku špecialistu.

Mikrokontrolér- riadené zariadenie vyrobené na jednom alebo niekoľkých kryštáloch, ktorého funkciami sú logická analýza a riadenie.

Klasifikácia mikroprocesorov a ich hlavné parametre

Podľa počtu LSI sa rozlišujú jednočipové, viacčipové a viacčipové delené MP.

Jednočipový MP implementovať celý hardvér procesora ako jeden LSI alebo VLSI. Jednočipový MP má pevnú bitovú šírku, sadu príkazov a je konštrukčne vyrobený vo forme jedného integrovaného obvodu (IC). Všetky ním vykonávané operácie sú určené súborom MP príkazov. Charakteristickým znakom jednočipového MP je prítomnosť vnútornej chrbtice na prenos interných informačných dát a riadiacich signálov. Schopnosti týchto MP sú obmedzené hardvérovými zdrojmi kryštálu a balíka, ale s nárastom stupňa integrácie kryštálu a počtu terminálov v balení sa parametre MP neustále zlepšujú.

V veľakryštálový MP logická štruktúra je rozdelená na funkčne ucelené časti, ktoré sú implementované vo forme samostatných LSI a VLSI alebo samostatných kryštálov v jednom VLSI.

Multičipový rozdelený MP pozostáva zo sady mikroprocesorových sekcií.

Mikroprocesorová sekcia- toto je integrovaný mikroprocesorobvod, ktorý implementuje časť MT a má prostriedky jednoduchej funkcionalityamalgamácies rovnakým typom alebo inými mikroprocesorovými sekciami na zostavenie kompletného MP, MPU alebo mikropočítača.

Rozdelený MP je riadený firmvérom. Medzi delené MPC patria LSI radu: K1800, KR1802, KM1804 atď.. Ich hlavným účelom je vytvárať vysokovýkonné multibitové MP a MPC, na základe ktorých sú implementované rôzne riadiace počítačové systémy.

Základom IPC BIS je základná sada IC jednej série. Môže pozostávať z jednočipového MP s pevnou bitovou šírkou a sadou príkazov, alebo zo sady jednočipových MP LSI. Pre rozšírenie funkčnosti MP je základný MPK LSI doplnený o ďalšie typy LSI: RAM, ROM, EPROM, integrované obvody rozhrania, ovládače externých zariadení atď.

Podľa typu spracovávaných signálov sa rozlišuje medzi digitálny a analógový MP. V oboch typoch MT je spracovanie informácií digitálne. V digitálnych MP sa spracovávajú čisto digitálne signály a v analógových na spracovanie analógových signálov je zabudované analógovo-digitálne zariadenie (ADC) a digitálno-analógový prevodník (DAC). V nich sú vstupné analógové signály prenášané do MP cez ADC, spracované v digitálnej forme, konvertované do analógovej formy v DAC a odoslané na výstup.

Výber súpravy mikroprocesorov

na navrhovanie výpočtových zariadenía systémov

Výber IPC pre konkrétne výpočtové zariadenie alebo systém je najťažšou úlohou. Je to spôsobené neustálym nárastom počtu IPC a LSI v nich.

Pri výbere IPC musí zariadenie spĺňať určité požiadavky: práca v reálnom čase; zvýšená spoľahlivosť; odolnosť proti hluku; jednoduchosť údržby; prítomnosť pevného súboru úloh, ktoré sa riešia opakovane počas celej životnosti zariadenia.

Výber IPC sa vykonáva podľa troch hlavných kritérií:

1) z hľadiska vývoja softvéru je potrebné analyzovať bitovú hĺbku, počet univerzálnych registrov dostupných na použitie, súbor inštrukcií a metód adresovania, prítomnosť a organizáciu zásobníka;

2) s ohľadom na návrh systému je potrebné určiť: typ architektúry MP (sekciový alebo jednočipový), typ organizácie riadenia (mikroprogram alebo s tvrdou logikou), prítomnosť logicky kompatibilných LSI z iných súpravy, rýchlosť MP, schopnosť prerušenia a priameho prístupu do pamäte, prítomnosť automatizovaného dizajnu;

3) z hľadiska vývoja hardvéru MPS je potrebné vziať do úvahy: elektrickú kompatibilitu LSI, počet zdrojov energie a rozptýlený výkon, veľkosť a typ skrine, počet svoriek, rozsah prevádzkových teplôt atď.

Výber IPC pre konkrétnu aplikáciu sa často vykonáva na základe údajov o technológii, ktorou je vyrobený.

Otázky a úlohy

1. Aké faktory určujú využitie MP a mikropočítača vo výrobných systémoch?

2. Aký je rozdiel medzi jednočipovými MP a multičipovými (nerozdelenými a rozdelenými)?

3. Aké všeobecné parametre charakterizujú MP, MPU a MPU?

4. Aké sú vlastnosti MP?

5. Aké sú hlavné parametre moderného MP.

6. Aké sú kritériá pre výber mikroprocesorových súprav pri navrhovaní výpočtových zariadení a systémov?

1.2. Všeobecné otázkyorganizácie afungovaniemikroprocesorové zariadeniaa systémov

Štruktúra mikroprocesorových zariadenía systémov

Každý MPS pozostáva z MP, pamäťového systému, informačného vstupno-výstupného systému a systému na prepojenie s objektom riadenia alebo monitorovania.

Mikroprocesor a plní úlohu centrálnej riadiacej jednotky a zariadenia na aritmetické a logické prevody dát.

Pamäť fyzicky implementovaný ako systém, ktorý pozostáva z niekoľkých úrovní.

Trvalé úložné zariadenia (ROM) sú určené na dlhodobé uchovávanie vopred zaznamenaných dát a používajú sa len v režime čítania. Sú neprchavé.

Náhodný vstup do pamäťe (OZP) pracovať v režime online zápisu a čítania s rýchlosťou blížiacou sa rýchlosti procesora. Sú nestále.

Externé úložné zariadenia (VPamäť) plnia funkcie ukladania veľkého množstva informácií, obsahujú mechaniky na disketových a pevných magnetických diskoch, kompaktných diskoch (laser) atď.

Zariadeniazadávanie údajov (HC) sú určené na prenos údajov zvonku do registrov MP alebo do pamäte. Medzi nimi je klávesnica, rôzne ovládacie panely, magnetické a laserové disky atď.

Zariadenia na výstup údajov (UVv) sú určené na vnímanie dát prenášaných z MP registrov alebo pamäťových buniek. Sú to displeje, tlačiarne, VCU, ovládacie panely, plotre (plotre) atď.

Na prepojenie riadeného alebo monitorovaného objektu s MPU alebo MPS musí zariadenie obsahovať snímače a ovládacie mechanizmy. Na ich pripojenie k MPU, či ministerstvo železníc využíva blokypárovanie, ktoré vykonávajú funkcie vyjednávania rozhrania. Niekedy sa tieto jednotky nazývajú objektové komunikačné zariadenia (OCD).

Rozhrania mikroprocesorových zariadenía systémov

Architektonické možnosti IPM do značnej miery závisia od typu rozhrania.

Jednotné rozhranie je súbor pravidiel, ktoré stanovujújednotné princípy interakcie MPS zariadení.

Rozhranie obsahuje hardvér na pripojenie zariadení (konektory, spoje), špecifikáciu názvoslovia a charakteristiky spojov, softvér, popisy charakteru signálov rozhrania a ich časových diagramov, ako aj popis elektrofyzikálnych parametrov signálov.

Hlavnou úlohou rozhrania je na základe unifikácie zabezpečiť kompatibilitu hardvéru, softvéru a dizajnových nástrojov, ktoré predurčujú špecifikovanú kvalitu automatickej interakcie rôznych funkčných prvkov v jedinom procese spracovania informácií v MPS v etapách zber, transformáciu, uchovávanie a poskytovanie výsledkov a kontrolné činnosti.

Architektúru MPS určujú hlavne tri úrovne rozhrania: systém, stroj-stroj a malé rozhranie (periférne rozhranie).

Systémové rozhranie zabezpečuje integráciu hlavných modulov (blokov) MPS do jedného systému pre rovnocennú výmenu informácií so spracovateľom a OZP.

Systémové rozhrania sa delia na sústredené (PC rozhrania), lokálne sústredené (Q-bus) a lokálne (Unibus).

Rozhranie stroj-stroj zabezpečuje výstavbu multiprocesorových systémov a lokálnych a distribuovaných systémov a sietí.

Malé rozhrania brať do úvahy rozdiel vo fyzikálnych princípoch fungovania skupín periférnych zariadení a ROM. Malé ovládače rozhrania poskytujú prístup k systémovému rozhraniu. V tomto prípade ovládače periférnych zariadení a ROM prejdú na príslušné malé rozhranie.

Mikroprocesorové ovládaniezariadenia (systémy)

Časová koordinácia informačných signálov v MPU sa vykonáva pomocou špeciálnych signálov prichádzajúcich z riadiaceho zariadenia MP. MPU alebo MPS funguje synchrónne s výskytom hodinových signálov. Najjednoduchšia akcia, ktorá sa vykonáva v LCP (LPS), je tzv stav. Pokrýva jednu periódu hodinového signálu - hodinyinterval alebo meranie.

Zadaný počet hodinových intervalov je strojcyklu. Jedna pamäť alebo I/O prístup vyžaduje jeden strojový cyklus. V jednom cykle sa načíta príkaz alebo dáta, ako aj kód adresy (prípadne bajt príkazu alebo dát a bajt kódu adresy).

Strojový cyklus- časť tímu (niekedy celý tím). Na začiatku každého strojového cyklu sa na synchronizačnom kolíku MP objaví synchronizačný signál. Prenáša sa do pamäťového zariadenia (pamäť) a (alebo) do vstupno/výstupného zariadenia (IO) a „upozorňuje“ na začiatok nového strojového cyklu, v dôsledku čoho dochádza k časovej koordinácii činnosti týchto zariadení s prevádzkou MP sa dosiahne.

Schéma 1Štruktúra tímu

Príkazová slučka- časový interval potrebný na stiahnutie príkazu z pamäte a jeho vykonanie. Pozostáva z jedného alebo viacerých strojových cyklov. ich počet sa spravidla rovná počtu prístupov MT do pamäte alebo do jedného z I/O zariadení. Štruktúra príkazu je znázornená na diagrame 1.

Ovládacie zariadenie vykonáva funkcie riadenia a synchronizácie, to znamená, že riadi zmenu stavov MP v požadovanom poradí a koordinuje ich so signálmi generátora hodín. Pozostáva zo stroja riadiaceho stavu určeného na riadenie procesov vo vnútri MP a obvodu, ktorý prijíma signály zvonka a generuje signály, ktoré riadia systém.

Kód príkazu sa dešifruje a zmení sa na binárne signály, ktoré ovplyvňujú moduly a bloky MP, ktoré sa podieľajú na vykonávaní tohto príkazu.

Inštrukčný cyklus je rozdelený do dvoch fáz: fáza vzorkovania a fáza vykonávania.

Fáza odberu vzoriek- stroj nastaví začiatok ďalšieho cyklu, podľa ktorého sa číslo v počítadle príkazov prenesie do registra adries vyrovnávacej pamäte. Odtiaľ sa cez adresovú zbernicu odošle adresový kód príkazu do pamäte, kde sa dešifruje. Po "prečítaní" signálu z pamäťovej bunky sa príkazové slovo načíta a prenesie cez dátovú zbernicu do vyrovnávacieho dátového registra, z ktorého sa prenesie do príkazového registra a následne sa dešifruje.

Fáza vykonávania- riadiace zariadenie generuje sekvenciu signálov potrebných na vykonanie príkazu. Počas tejto doby sa údaj počítadla zvýši o jeden. Toto tvorí adresu nasledujúceho príkazu, ktorý sa má vykonať.

Čítanie alebo písanie slova prebieha počas určitého časového obdobia, ktoré sa nazýva prístupový čas. Čas potrebný na prístup a prijatie signálu pripravenosti z pamäte sa nazýva cyklus čakania pripravenosti. Je súčasťou strojového cyklu.

Výmena informácií medzi MP, pamäťou a air-blast zariadením sa realizuje najmä v troch režimoch: softvérovo riadená výmena, výmena v režime prerušenia, výmena v režime priameho prístupu.

Softvérová riadená výmena. V tomto režime MP určuje, či je pamäťové zariadenie alebo periférne zariadenie (CP) pripravené na vykonanie vstupno-výstupnej operácie až do začiatku prenosu softvérových údajov. Zariadenia na fúkanie vzduchu musia mať hardvér na generovanie signálov o vnútornom stave. MP tieto informácie prečíta a na základe analýzy výsledku usúdi, že zariadenie je pripravené na výmenu informácií. Následne prebieha výmena dát v súlade s protokolom rozhrania.

Režim prerušenia. Používa sa pri potrebe okamžitého prenosu dát medzi air-blastom a MP (reakcia na neočakávaný výskyt vonkajších podmienok). V tomto prípade musí MP prerušiť prácu hlavného programu a začať vykonávať program na obsluhu externého zariadenia. Tento režim sa nazýva prerušenie. Prerušenie MT je možné len vtedy, keď MT môže odpovedať na požiadavky na prerušenie.

Po prijatí signálu prerušenia MP dokončí aktuálnu operáciu, prenesie všetky informácie interných dát a riadiacich registrov na uloženie do pamäte a prejde do podprogramu služby prerušenia. Po skončení výmeny informácií o prerušení sa obnoví stav MP, ktorý existoval na začiatku prerušenia.

Existujú tri typy prerušení: jednoduché, vektorové a prioritné.

Jednoduché prerušenie upozorňuje, že niektoré I/O zariadenia vyžadujú údržbu MP.

Vektorové prerušenie umožňuje rozpoznať typ (úroveň) prerušenia vyžadovaného periférnym zariadením. Vektor určuje konkrétnu adresu zariadenia.

Prioritné prerušenie spočíva v tom, že okrem rozpoznania prerušenia je určená priorita pri obsluhe prerušovacích zariadení.

Priamy režimprístup do pamäte. Niekedy je potrebné vymieňať si informácie s MP. To je spojené so skrátením času potrebného na výmenu dátových polí. V tomto prípade hardvérová časť MPP, či MPU obsahuje radič priameho prístupu do pamäte, ktorý riadi prenos dát, oslobodzuje MP od týchto funkcií.

Zariadenia s priamym prístupom do pamäte sú zapojené paralelne s procesorom. Oddelenie týchto kanálov sa vykonáva pomocou tristabilnej logiky na riadenie stavu zberníc MPS. Počas priameho prístupu do pamäte MP prenesie svoje pôvodné obvody do vysokoimpedančného stavu a je izolovaný od systému, čo je podobné prerušeniu informačného kanála. Stav interných registrov zostáva rovnaký ako v čase požiadavky na kanál priameho prístupu.

Existuje niekoľko spôsobov, ako implementovať priamy prístup do pamäte. Všetky poskytujú najvyššiu rýchlosť výmeny dát v porovnaní so softvérovo riadeným režimom výmeny. Najčastejšie sa režim priameho prístupu do pamäte implementuje so zastavením MP a zvýšením (predĺžením času) cyklu MP.

Metóda zastavenia na základe toho, že v tomto stave je MP po dobu prenosu dát odpojený od systémových zberníc. Pred vstupom do stavu stop dokončí MP vykonanie aktuálneho príkazu a v tomto stave sa oneskorí o niekoľko hodinových cyklov, kým sa pneumatiky neuvoľnia. Podľa tejto schémy priameho prístupu do pamäte MP, keď je odpojený od zberníc, nereaguje na prerušenia, čo môže byť v niektorých prípadoch pre MPS neprijateľné.

Metóda zachytávania spočíva v postupnej výmene údajov. Zariadenia na rýchle prúdenie vzduchu si vymieňajú iba jedno slovo; ich servisná požiadavka je uspokojená oneskorením vykonania aktuálnej inštrukcie o jeden strojový cyklus, keď je MT v stave prechodu z jedného strojového cyklu do druhého. V tomto režime DMA je MP pozastavený iba na jeden strojový cyklus na prenos každého dátového slova, po ktorom sa riadenie vráti do MP.

Adresný priestor. Mechanizmus a metódy oslovovania

Adresný priestor MPU (MPS) - veľa adries prevádzkypamäť aROM, ktorá je k dispozícii pre programy spúšťané MP.

Veľkosť adresného priestoru MP RAM je jednou z veličín, ktoré výrazne ovplyvňujú výkon MPU ako celku.

Veľkosť adresného priestoru - hodnota,ktorý je určený maxveľkosť adresy a vyjadruje sa v jednotkách minimapočet pamäťových prvkov, ktoré sú adresované - v bajtoch alebo vo veľkomJednotky (KB, MB, GB).

Ak je adresa v MPU vytvorená vo forme 16-bitového slova, potom je adresný priestor 64 KB, 20-bitový - 1 MB atď. MP a air-blast. V tomto prípade neexistujú žiadne I/O príkazy ako také. Prístup do registrov MP a UVV sa vykonáva rovnakým spôsobom ako prístup k pamäťovým bunkám.

Pri tvorbe slova, 2-bajtovej adresy, sa bajt s párnou (nižšou) adresou nazýva nižší a bajt s nepárnou adresou sa nazýva vyšší.

Adresný priestor MPU je často znázornený vo forme diagramu, ktorý označuje celkový rozsah adries. Tento rozsah je možné rozdeliť na podrozsahy, ktoré zodpovedajú štandardným veľkostiam konštrukčných modulov, čipov, rôznym typom pamätí (RAM, ROM atď.) alebo ich špecifickému účelu.

Adresné príkazy zaujímajú významné miesto v systéme príkazov MP.

Príkaz adresy - tím, v ktoromjeden alebo oba jeho operandy súv RAM.

Jedným z dôvodov takejto organizácie inštrukcie je, že nie je možné priamo zapísať celú fyzickú adresu do jedného operandu inštrukcie z dôvodu obmedzenia dĺžky inštrukcie. Preto je do operandu umiestnená len určitá hodnota, pomocou ktorej sa vypočíta skutočná adresa inštrukcie.

Vo všeobecnosti je mechanizmus adresovania do značnej miery určený schopnosťami LCP (MPS) efektívne spracovávať informácie s minimálnym počtom volaní do RAM. V LCP (MPS) sa často používajú príkazy dvoch alebo viacerých slov.

Na obmedzenie dĺžky adresného slova sa používajú rôzne spôsoby adresovania, ktoré umožňujú:

1) určenie plnej adresy pamäťovej bunky s menším počtom bitov, ako je skrátená dĺžka inštrukcie;

2) prístupové pamäťové bunky, ktorých adresy sa vypočítavajú počas spracovania, čo poskytuje prístup k zariadeniam na rozšírenie pamäte;

3) vypočítať adresy údajov vzhľadom na pozíciu (aktuálnu adresu) príkazu tak, aby bolo možné program načítať do ľubovoľného miesta v pamäti bez zmeny adresy v programe.

Všetky režimy adresovania možno rozdeliť do dvoch skupín:

1) režimy, v ktorých je výkonná adresa určená jednou kódovou hodnotou v príkaze;

2) príkazy, ktoré používajú obsah časti adresy príkazu a jeden alebo viac registrov na vytvorenie výkonnej adresy.

Prvá skupina zahŕňa priame, priame registre, nepriame, nepriame registre, priame, autoinkrementálne a autodekrementálne adresovanie a druhá - základné, relatívne, zásobníkové, virtuálne adresovanie.

Priame adresovanie. Operandy sa získavajú z pamäte (registrov) na adrese zapísanej v inštrukcii. Zadanie priamej adresy však vyžaduje veľa bitov na opísanie veľkej adresy v príkaze. Na jej zníženie používajú niektoré mikropočítače krátke priame adresovanie, ktoré poskytuje prístup k obmedzenej časti adresného priestoru. Ak adresy v príkaze nie sú symbolické (špecifikované odkazmi), ale absolútne, potom sa volá takéto priame adresovanie absolútne.

Adresovanie priameho registra. V príkazový kód ukladá názov registra, v ktorom sa operand nachádza. Priame adresovanie nie je dostatočne flexibilné, pretože neumožňuje vykonať procedúru úpravy adresy potrebnú na zabezpečenie pohybu programov v pamäti a pohodlnosti práce s poľami.

Nepriame adresovanie. Operand z pamäte sa vyberá nepriamo – cez pamäťovú bunku. Príkazový kód obsahuje ukazovateľ na adresu umiestnenú v pamäti. Pri vykonávaní príkazov s takýmto adresovaním sa prístupy do pamäte vykonajú dvakrát: najprv sa vyberie adresa a potom operand. Bez zmeny príkazového kódu teda môžete zmeniť adresu uloženú v pamäťovej oblasti, na ktorú ukazuje pole príkazového kódu.

Adresovanie nepriameho registra. Rýchlosťou sa približuje k priamemu adresovaniu, keďže nepriama adresa sa vyberá z interného registra procesora a nevyžaduje ďalší pamäťový cyklus. Podľa tejto schémy adresovania obsahuje register alebo pár registrov adresu vykonávania operandu. Načítanie registrov sa vykonáva pomocou príkazov s priamym adresovaním. Použitie režimu nepriameho adresovania registra umožňuje vypočítať adresu pamäte počas vykonávania programu, čo je niekedy potrebné pri postupoch prenosu údajov, pri prezeraní prvkov poľa atď.

Priame adresovanie. Operand je v kóde príkazu. Príkazy v tomto prípade môžu pozostávať z dvoch alebo troch slov.

Auto-inkrementácia a auto-decrement adresovanie. Výkonná adresa sa vypočíta rovnakým spôsobom ako pri nepriamom adresovaní registra a potom sa obsah registra zväčší. V mikropočítači s bajtovým adresovaním sa obsah registra musí zväčšiť o 1 na označenie ďalšieho bajtu a o 2 na označenie adresy nasledujúceho slova, pričom veľkosť operandu je určená operačným kódom. V autodekrementálnom režime sa adresa operandu vytvorí odčítaním 1 alebo 2 z registra adries. Rozdiel oproti automatickému prírastkovému adresovaniu je v tom, že odčítanie sa vykonáva pred použitím obsahu registra ako vykonávacej adresy. Kombinácia režimov automatického prírastku a automatického znižovania zaisťuje efektívne využitie akéhokoľvek registra ako ukazovateľa zásobníka. Takéto adresovanie sa používa aj pri organizovaní slučiek a pri operáciách s reťazcovými premennými.

Základné adresovanie. Programy, ktoré obsahujú inštrukcie s absolútnymi adresami, nie je možné presúvať v pamäti bez úpravy adries. Pohyb programov v pamäti je možné zabezpečiť pomocou adresovania bázy, pomocou ktorej sa vypočíta adresa operandu sčítaním obsahu základného registra - kladného alebo záporného offsetu a adresy umiestnenej v kóde inštrukcie.

Relatívne oslovovanie. Výkonná adresa sa vytvorí pridaním základnej adresy do poľa adresy príkazu. Obsah programového počítadla sa používa ako základná adresa. Použitie relatívneho adresovania umožňuje zostaviť programy, ktoré sa nezávisle pohybujú v pamäti vďaka skutočnosti, že vždy obsahujú posun vzhľadom na obsah programového počítadla. Posuny sa interpretujú ako celé číslo so znamienkom, reprezentované dvojkovým doplnkom, ktoré sa mení v ľubovoľnom smere.

Adresovanie zásobníka. Adresovanie nepriameho registra s autoinkrementom alebo autodekrementom (autoincrement alebo autodecrement), v ktorom je implicitne špecifikovaný register s ukazovateľom adresy operandu (existujú inštrukcie, kde je umiestnenie operandov a výsledok pevné - implicitné adresovanie). Zavolá sa pamäťové miesto, na ktoré ukazuje obsah implicitne špecifikovaného registra (ukazovateľ zásobníka). vrchol stoh. Pomocou adresovania zásobníka sa špeciálny prístup k časti pamäte tzv stoh, ktorý je založený na princípe „posledný príde – prvý von“. Na prístup k zásobníku sa používajú príkazy, ktoré zapisujú informácie do zásobníka a vyskakujú ich z neho. Ak príkazy, ktoré zapisujú informácie do zásobníka, znížia obsah ukazovateľa zásobníka a príkazy, ktoré vyskočia zo zásobníka, sa zvýšia, potom hovoria, že zásobník funguje na zníženie, v opačnom prípade - na zvýšenie.

Virtuálne adresovanie. Každý užívateľ pamäte (operačný systém alebo osoba), riešiaci aplikovaný problém, manipuluje s virtuálnymi adresami, čo vytvára ilúziu pamäte neobmedzenej kapacity, hoci skutočná RAM systému má obmedzenú kapacitu. Ilúzia vzniká vďaka mechanizmu virtuálneho adresovania, ktorého základom je dynamická redistribúcia pamäťových stránok medzi hlavnou pamäťou systému (OZP) a externou.

Operačný systém vytvorí tabuľku zhody medzi virtuálnymi a fyzickými stránkami pre každého používateľa. Ak sa pristupuje na fyzickú stránku, ktorá nie je v hlavnej pamäti, potom sa odstráni z externej pamäte a načíta sa do hlavnej a nepotrebná stránka sa „skryje“ v externej pamäti. Virtuálnu pamäť alebo jednoducho systémovú pamäť možno rozdeliť na segmenty, v ktorých sú uložené informácie podľa funkčných charakteristík. Napríklad v jednom segmente - príkazy, v druhom - údaje, v treťom - časť zásobníka. Alebo v jednom segmente, v ktorom je zakázané písanie, je jadro operačného systému a v druhom, v ktorom je povolené písanie a čítanie, používateľské programy. Pomocou segmentačného mechanizmu sú teda vyriešené problémy s ochranou pamäte.

Segmentácia bola implementovaná v MP K1810VM86 a virtuálne adresovanie - v MP ІАРХ286 (Intel) a 68010 (Motorola).

Príkazový systém. Vo všeobecnom prípade sa príkaz chápe ako jeden krok v prevádzke výkonného zariadenia vo forme inštrukcie v strojovom jazyku. Príkaz definuje operáciu, ktorá sa má vykonať, a jej atribúty: typ operácie vykonanej v tomto cykle práce; adresa jedného alebo dvoch operandov zapojených do operácie; umiestnenie výsledku operácie; adresu umiestnenia nasledujúceho príkazu. Kvôli malej bitovej hĺbke MP je ťažké a niekedy nemožné uviesť takúto informáciu jedným strojovým slovom. Preto môže príkaz pozostávať z niekoľkých strojových slov.

Vo všeobecnosti sa rozlišujú tieto typy príkazov:

1) prenos - jednosmerný (register-register, pamäť-register, register-pamäť, pamäť-pamäť), výmenný (register-register, pamäť-register, pamäť-pamäť), vstupné / výstupné príkazy;

2) aritmetika;

3) logické;

4) bitové spracovanie;

5) tie, ktoré menia postupnosť výpočtov – prechody (nepodmienené, podmienené), volania podprogramov, návraty z podprogramov, softvérové ​​prerušenia.

Samotestovacie otázky

1. Popíšte zovšeobecnenú štruktúru MP a MPS.

2. Na základe čoho sú rozhrania MPU a MPU klasifikované?

3. Aké funkcie vykonáva MT pri spracovaní príkazu (inštrukcie) počas fázy vzorkovania, fázy vykonávania?

4. Za akých okolností sa výmena informácií medzi MP a pamäťovými zariadeniami uskutočňuje v režime prerušenia alebo v priamom prístupe do pamäte?

5. Od akých parametrov MP závisí veľkosť adresného priestoru?

6. Pomocou Prílohy 1 uveďte príklady príkazov adries s priamym, nepriamym, priamym, základným, relatívnym, automatickým prírastkom, zásobníkom a virtuálnym adresovaním.

7. Aké informácie nesie príkazový kód v systéme príkazov MP?

1.3. Formalizácia procesuprojektovaniemikroprocesorové zariadeniaa systémov

Aspekty a úrovne dizajnu

Pri navrhovaní MPU a MPS v mnohých prípadoch používajú blokovo-hierarchický prístup, v ktorom navrhovaný systém je rozdelený do hierarchických úrovní. Na najvyššej úrovni je použitá čo najpodrobnejšia prezentácia, kde sú zobrazené len všeobecné vlastnosti a vlastnosti navrhovaného systému. Na ďalších úrovniach sa zrnitosť zvyšuje. V tomto prípade sa MPS považuje za súbor samostatných blokov. Na každej úrovni sa formulujú a riešia problémy určitej zložitosti, ktoré sa implementujú pomocou nástrojov na navrhovanie dostupných na tejto úrovni. Rozdelenie do blokov by malo byť také, aby dokumentácia ku každému jednotlivému bloku bola zrozumiteľná pre jedného projektanta.

Blokovo-hierarchický prístup teda umožňuje rozdeliť zložité návrhové úlohy pre veľké MPS do skupín malých úloh a v rámci skupiny je možné paralelne riešiť rôzne úlohy.

V súlade s ESKD sa pri navrhovaní zariadení a systémov používajú konštrukčné, funkčné a schematické schémy.

V simulovanej schéme návrhu je podmienene možné rozlíšiť horizontálne a vertikálne úrovne (tabuľka 1). Vertikálne úrovne sa nazývajú aspekty. Existujú také aspekty návrhu MPU a MPS: funkčné, algoritmické, dizajnové a technologické.

Funkčný aspekt pozostáva z troch horizontálnych úrovní (2., 3. a 4.): systémovej (štrukturálnej), funkčno-logickej a obvodovo-zložkovej. Na systémovej úrovni navrhujú štrukturálnu schému MPU alebo MPS na funkčnej a logickej úrovni funkčné a schematické schémy MPU alebo všetkých zariadení, ktoré sú súčasťou MPS.

Na podúrovni obvodov na úrovni obvodových komponentov sú navrhnuté schematické elektrické obvody integrovaných obvodov alebo fragmentov LSI (VLSI). Prvky sú v tomto prípade súčiastky elektronických obvodov: rezistory, kondenzátory, diódy, tranzistory atď. Na podúrovni súčiastok sa vyvíjajú jednotlivé súčiastky IC, ktoré pozostávajú z prvkov-rezov polovodičového kryštálu.

Algoritmický aspekt obsahuje aj tri horizontálne úrovne (1., 2. a 3.): úroveň rozvoja schémy fungovania MPU alebo MPS, architektonická úroveň a úroveň mikroprogramu. Na 1. stupni vypracúvajú schémy fungovania MPU alebo MPS, určujú úlohy, ktoré bude riešiť mikroprocesorová časť MPS, plánujú softvérové ​​systémy a vypracúvajú blokové schémy algoritmov. V budúcnosti sa vyvíjajú softvérové ​​moduly.

Hlavnou úlohou 2. (architektonickej) úrovne je výber architektúry mikroprocesorovej časti MPS. Niekedy sa to považuje za jednu z úloh systémovej úrovne, to znamená, že spájajú architektonické a systémové úrovne do jedného aspektu funkčného dizajnu.

Stôl 1.Horizontálne a vertikálne yúroveň dizajnu

Horizontálna úroveň

Aspekty (vertikálne úrovne)

Funkčné

Algoritmické

Dizajn

Technologické

Vývoj zákonov pre fungovanie LPA (MPS); navrhovanie algoritmov; programovacie moduly

systémové (štrukturálne)

Architektonický (stroj)

Stúpačka, pa-nel

Vypracovanie schematického diagramu technologického procesu

Funkčno-logické

Mikro-softvér

TEZ, modul

Vývoj trás technologického procesu

Schematic-component-ny

IC kryštály

Návrh technologických operácií

3. (mikroprogramová) úroveň je určená na návrh mikroprogramov operácií a procedúr, ktoré sú vykonávané v mikroprocesore MPU alebo MPS hardvérovo.

Dizajnový aspekt obsahuje horizontálne hierarchické úrovne dizajnu stúpačiek, panelov, TEZ_v, modulov a kryštálov (ch_p_v) IC (2., 3., 4. rovnaký).

Technologický aspekt pozostáva z troch horizontálnych úrovní – 2., 3. a 4. Na 2. úrovni sa vypracuje schéma technologického procesu výroby MPU alebo MPS, to znamená, že sa určí zloženie a postupnosť etáp výroby MPS (MPS). Na 3. úrovni sa vypracúvajú trasy technologického procesu výroby MPU (MPS), to znamená, že sa určuje zloženie a postupnosť operácií pri výrobe produktu, vyberajú sa typy a skupiny technologických zariadení. Na 4. úrovni sú navrhnuté technologické operácie na výrobu komponentov MPU (MPU).

Hlavné úlohy konštrukčných úrovní

Systémové a architektonickédizajnové rovnosti:

1) stanovenie zásad organizácie LPA (IPU);

2) vypracovanie štruktúrneho diagramu, to znamená určenie zloženia zariadenia alebo systému a spôsobu interakcie komponentov počas prevádzky zariadenia;

3) výber mikroprocesorovej (mikroprocesorovej) sady LSI (VLSI);

4) stanovenie požiadaviek na parametre zariadenia alebo systému a vytvorenie technickej úlohy (TOR) pre vývoj jednotlivých zariadení MPS.

Zadania pre vývoj jednotlivých zariadení MPS obsahuje: vymenovanie všetkých funkcií vykonávaných každým zariadením; prevádzkové podmienky zariadenia; požiadavky na jeho vstupné a výstupné parametre; údaje o obsahu a forme informácií vymieňaných s inými zariadeniami; elementová základňa na vytvorenie zariadenia.

Funkčná logika a firmvérúroveň dizajnu:

1) podrobný popis funkcií každého zariadenia;

2) algoritmická implementácia funkcií, ktoré sa vykonávajú programovo, a prezentácia algoritmov v jednom z akceptovaných algoritmických jazykov;

3) výber zásad organizácie LPA (MPS) a vypracovanie jeho koncepčného diagramu;

4) vývoj mikroprogramov, ktoré slúžia ako základ pre každý príkaz alebo súbor mikroinštrukcií a postupnosť ich vykonávania;

5) syntéza funkčných a schematických diagramov digitálnych zariadení, ktoré sú súčasťou MPS;

6) syntéza kontrolných a diagnostických testov na MPP alebo MPE;

7) formulácia technických špecifikácií pre úroveň návrhu obvodu.

Hlavné kritériá návrhu pre komplexné MPP aMPS:

1) kvalita dizajnu;

2) náklady na projektovanie;

3) podmienky vývoja;

4) počet zamestnaných vývojových špecialistov.

Podľa možností formalizácie procesu navrhovania a jeho iteračného charakteru sa uprednostňuje výber počítačom podporovaného návrhu MPP alebo MPS. Dnes je kvôli veľkej komplexnosti MPP a MPS úplný vývoj mikroprocesorovej časti vo všeobecnosti nemožný bez použitia metód počítačom podporovaného návrhu.

Otázka. Úloha

1. Vysvetlite podstatu blokovo-hierarchického prístupu k návrhu WFP a MPS.

2. Čo predstavujú aspekty v simulovanej schéme návrhu PPM?

3. V ktorej z horizontálnych úrovní je MPP navrhnutá vo forme TEZ a ktoré hľadisko tomu zodpovedá?

4. Aké sú hlavné úlohy projektovania MPP na úrovni systému.

5. Aké sú znaky architektonickej úrovne dizajnu WFP?

6. Čo je podstatou funkčno-logickej roviny návrhu MPP a MPS?

7. Aké sú hlavné úlohy riešené na mikroprogramovej úrovni MPP?

1.4. Architektúramikroprocesorzariadení a systémov

Podstata architektúry a princípov

vývoj mikroprocesorových zariadení a systémov

Podstata architektúryLPA a ministerstvo železníc.

Architektúra mikroprocesora odráža vo funkčnosti jeho základných elektronických komponentov používaných na reprezentáciuúdaje, strojové operácie,popisy algoritmov a výpočtových procesov.

Architektúra spája hardvér, firmvér a softvér výpočtovej techniky a umožňuje jasne rozlíšiť, čo pri vytváraní konkrétneho MPS musí užívateľ implementovať v softvéri a doplnkovom hardvéri.

V opačnom prípade je architektúra MP jej logickou organizáciou, vzhľadom na možnosti MP s ohľadom na hardvérovú alebo softvérovú implementáciu funkcií, ktoré sú priradené navrhnutému MPU alebo MPU. Zobrazuje štruktúru MT, spôsoby prezentácie a dátové formáty, sadu príkazov, formáty riadiacich slov, spôsoby prístupu ku všetkým prvkom štruktúry, ktoré má používateľ k dispozícii, reakcie MT na vonkajšie signály.

Na architektúru MT sa možno pozerať ako na súbor jej vlastností a charakteristík z pohľadu užívateľa. Popisuje metodiku optimálnej kombinácie súboru hardvéru, softvéru a mikroprogramovacích prostriedkov MPU alebo MPS vo vzťahu k vlastnostiam, ktoré používajú vývojári a používatelia programátorov.

Pri vývoji architektúraLPU, ako aj pre MT sú určené formáty údajov a príkazov, systém príkazov a spôsoby adresovania, typy adresovania, požiadavky na rozhrania sú opodstatnené. Správna voľba architektúry umožňuje optimalizovať výpočtový proces, ktorý implementuje algoritmy pre fungovanie LCP.

Architektúra mikropočítač - abstraktný pojem mikropočítača z hľadiska funkčných celkov, základných počítačových modulov, dátových štruktúr. Architektúra špecificky nedefinuje vlastnosti hardvéru, čas vykonávania inštrukcií, stupeň paralelizmu pri implementácii programu a ďalšie podobné charakteristiky. Zobrazuje aspekty štruktúry mikropočítača, najmä: príkazový systém, režimy adresovania, dátové formáty, súbor registrov dostupných používateľovi. Pojem "architektúra" sa používa na opis schopností, ktoré mikropočítač poskytuje, a pojem "organizácia" definuje, ako sú tieto schopnosti implementované.

Popis architektúry je model mikropočítača, ktorého pochopenie je dôležité nielen pre programátora. Môže byť použitý ako východiskový bod pre potenciálneho vývojára nového mikropočítača: v tomto prípade vývojár transformuje architektonické prvky, ktoré predstavujú určitú logickú schému, súbor potrebných vzájomne prepojených komponentov.

Všetky mikropočítače obsahujú funkčné bloky s vlastnou vnútornou mikroarchitektúrou: 1) procesor, pozostáva z aritmetickej logickej jednotky a riadiacej jednotky; 2) pamäť je súbor pamäťových prvkov (buniek) a riadiaca jednotka; 3) zariadenia na vstup a výstup informácií sú tiež zložité zariadenia, ktoré zahŕňajú mechanické a elektronické moduly. Tieto funkčné bloky sú kombinované pomocou zbernicového systému: dátová zbernica, prostredníctvom ktorej sa vymieňajú informácie medzi blokmi mikropočítačov; adresová zbernica, ktorá sa používa na prenos adries do softvérovo riadených zariadení, a riadiaca zbernica na prenos riadiacich slov.

Definícia počítačová architektúra, ako univerzálny mikropočítač sa význam nelíši od definície architektúry mikropočítača vo všeobecnosti.

Počítačová architektúra , z pohľadu programátora abstraktná reprezentácia (alebo definícia) výpočtového systému ako súboru hardvéru a softvéru. Architektúra je v podstate informácia o funkčnej (logickej) organizácii počítača.

Architektúra IPU - definovanie funkcií vykonávaných systémom na jeho jednotlivých úrovniach a presné vymedzenie hraníc medzi týmito úrovňami. Definuje princípy organizácie MPS a funkcie jeho komponentov, najmä procesora, pamäte atď. Architektúra MPS neodráža konštrukčné vlastnosti logických štruktúr a modulov a technológiu ich výroby.

Princípy dizajnuLPA a ministerstvo železníc

Od samého začiatku sa pri návrhu a vývoji mikropočítačov využívali najmä tieto základné princípy: modulárnosť, chrbtica, mikroprogramovateľnosť a pravidelnosť štruktúry.

Princíp modulárna organizácia zabezpečuje konštrukciu mikropočítača a MPS na základe sady modulov.

modul - konštruktívne, funkčné aelektricky kompletnézariadenie,čo umožňuje samostatne alebo v spojení s inýmimodulovriešiť výpočtové alebo riadiace problémydanej triedy.

Rozlišovať funkčné a konštruktívny modulov. Modulárny prístup umožňuje štandardizovať prvky vyšších úrovní a znižuje náklady na návrh LPA a MPS, zjednodušuje zvýšenie kapacity a rekonfiguráciu systému.

Vzájomné spojenie modulov a ich prvkov sa uskutočňuje najmä podľa dvoch zásad: a) princíp svojvôlespojenia, ktorá implementuje pravidlo „každý s každým“ a b) princípobjednané odkazy- kmeň,čo umožňuje minimalizovať počet odkazov. Zabezpečujú výmenu informácií medzi funkčnými a štrukturálnymi modulmi rôznych úrovní pomocou diaľnic spájajúcich vstupné a výstupné zbernice.

Väčšina mikropočítačov a MPS má viacúrovňovú organizáciu riadenia programu.

Princíp mikroprogramové ovládanie poskytuje najväčšiu flexibilitu pri organizovaní multifunkčných mikroprocesorových modulov a prostredníctvom určitej kombinácie mikroinštrukcií umožňuje realizovať problematickú orientáciu mikropočítača. Vďaka tomuto princípu je možné v MPS využívať makrooperácie a vykonávať príkazy a programy efektívnejšie ako pri použití podprogramov.

Ovládanie firmvéru poskytuje:

Väčšia flexibilita zariadení vďaka možnosti meniť firmvér,

Zvyšuje pravidelnosť štruktúry zariadení vďaka širokému používaniu maticových štruktúr, ako je pamäť,

Poskytuje paralelné riešenie problémov s distribuovaným riadením a distribuovanou pamäťou,

Zvyšuje spoľahlivosť zariadení pomocou pamäťových čipov,

Zjednodušuje ovládanie fungovania zariadení, keďže ovládanie mikroprogramovej riadiacej jednotky je zredukované na ovládanie obsahu pamäťového zariadenia.

Princíp pravidelnosti predurčuje opakovateľnosť prvkov štruktúry a spojení medzi nimi.

Pravidelnosť systému sa zvyčajne zvažuje na rôznych úrovniach jeho organizácie. Hlavné spôsoby zvýšenia pravidelnosti štruktúry LBP a LPS sú:

1) široké používanie zariadení, ako je pamäť;

2) odmietnutie pridelenia určitých mikrooperácií registrom;

3) používanie štruktúr registrov;

4) výroba univerzálnych registrov a iných registrov vo forme pamäťových buniek;

5) aplikácia hlavnej metódy výmeny informácií;

7) využitie princípu mikroprogramového riadenia;

8) vývoj paralelných MPS.

Klasifikácia architektúr mikroprocesorových zariadení a systémov

Existuje niekoľko klasifikácií architektúr MPU a MPS, ktoré sa väčšinou zhodujú s popismi zovšeobecnenej počítačovej architektúry.

KlasifikáciaM. Flin. Toto je jedna z úspešných klasifikácií, ktoré ukazujú architektonické rozdiely medzi počítačmi. Architektonické prvky počítača sú opísané z hľadiska toku príkazov (inštrukcií) a toku údajov. Tento prístup umožňuje klasifikovať počítačové architektúry do jednej z určitých tried (tabuľka 2, schéma 2).

tabuľka 2 Flynnova klasifikácia počítačových architektúr

Prúd príkazov

Jeden dátový tok

Viacnásobný dátový tok (MD)

Single (OK)

SISD (počítače s jedným procesorom)

OKMD (SIMD) (počítače s paralelnými alebo asociatívnymi procesormi)

Viacnásobné (MK)

MISD (chrbticové počítače dopravníkov)

MIMD (MIMD) (komplexy s viacerými procesormi alebo viacerými strojmi)

Klasifikácia sa vykonáva nie z hľadiska štruktúry strojov, ale z hľadiska toho, ako v počítači interagujú jeho strojové inštrukcie s údajmi. Napriek tomu je Flynnova klasifikácia veľmi všeobecná, to znamená, že zaraďuje všetky paralelné počítače, okrem počítačov s viacerými procesormi, do rovnakej triedy a neuvádza žiadny rozdiel medzi dopravníkovým počítačom a maticou MP.

Používajú sa aj iné klasifikácie architektúr, najmä systematika F. Shara, štrukturálna systematika R. Hockneyho a C. Jesshopa, ktorá používa špeciálne štrukturálne zápisy.

Štrukturálna taxonómia R.Hockney a K. Jesshope. Na prvej úrovni sú všetky výpočtové systémy rozdelené podľa princípu multiplicity (množstva) na jednopočítačové a viacpočítačové systémy. Výpočtové systémy s jedným počítačom sa zase delia na počítače s jedným dopravníkom MP a mnohými MP.

Prvý z nich sú tradičné sekvenčné počítače a druhý tvoria triedu paralelných počítačov, ktoré sa delia na zreťazené, nezreťazené a mikroprocesorové matice.

Schéma 2 Flynnova klasifikačná ilustrácia počítačových architektúr

Príkladom jedného z prvých nezreťazených paralelných výpočtových strojov je CDC-6600, postavený na báze niekoľkých skalárnych procesorov.

Dopravníkové počítače sa delia na tie, ktoré vykonávajú len skalárne inštrukcie, napríklad počítače CDC-7800, FPC AP-120B, a tie, ktoré vykonávajú vektorové inštrukcie. Počítače, ktoré používajú vektorové inštrukcie, sa zase delia na počítače so špecializovaným potrubím, napríklad CRAY-1, a s univerzálnym potrubím, počítač CYBER 205.

Počítače strojovej triedy s maticou procesorov Sú klasifikované podľa konektivity procesorov v matici, podľa bitovej šírky atď. Prvými strojmi tohto typu boli ILLIAC-IV, BSP, STA-RAN, ICL DAP, OMEN atď.

Počítače sú rozdelené do dvoch hlavných skupín podľa účelu: univerzálny a špecializovaný .

Architektúravon Neumann

Univerzálny počítače majú tradičnú „von Neumannovu“ architektúru (alebo skalárnu architektúru).

Základné princípy budovania softvérovo riadených počítačov.

Slávny americký matematik J. von Neumann v roku 1946 ako prvý sformuloval základné princípy stavby softvérovo riadených počítačov, ktoré sa postupom času dopĺňali a zdokonaľovali:

1) princíp naprogramovaného riadenia spočíva v tom, že počítač dokáže automaticky transformovať počiatočné údaje v súlade s daným programom;

2) princíp podmieneného skoku poskytuje programom flexibilitu a všestrannosť a poskytuje možnosť v procese riešenia problému skočiť na určitú časť programu v závislosti od výsledkov medzivýpočtov alebo počiatočných údajov;

3) princípom uchovania (zabezpečenia) programu je, že program je umiestnený v pamäti počítača;

4) princíp náhodného prístupu k pamäťovým prvkom;

5) princíp používania binárnej číselnej sústavy;

6) princíp viacúrovňovej (hierarchickej) pamäte.

Tieto princípy sú relevantné aj pre moderné počítače, ale s vytváraním nových generácií a rodín strojov boli doplnené a spresnené.

V počítači, počnúc od tretia generácia, okrem toho platia tieto zásady:

- multiprogramovanie- spoločné vykonávanie rôznych príkazov rovnakých alebo rôznych programov, ktoré sú uložené v pamäti RAM, nezávisle od jedného;

- informácií a softvérovej kompatibility- umožňuje spustiť existujúce programy na rôznych modeloch rodiny;

Vysoká úroveň technickej normalizácie- rovnaké pre všetky stroje, nomenklatúra externých a iných zariadení;

možnosť organizácia viacstupňovej práce o tvorbe a zlepšovaní počítačov.

Stroje štvrtej generácie sú postavené podľa princípov:

- multiprocessing- komutácia viacerých procesorov pri práci so zdieľanou pamäťou;

Organizácia virtuálna pamäť- poskytovanie takmer neobmedzeného množstva adresného priestoru RAM;

Široký používanie BIC a VLSI a makromodulárna štruktúra, ktorá je založená na myšlienke budovania funkčne flexibilných výpočtových systémov z veľkých štandardizovaných blokov (makromodulov);

Vnútorné použitie jazyky na vysokej úrovni.

Stroje piatej generácie líšiť sa:

Výrazné zvýšenie intelektuálnej úrovne spracovateľov;

Ďalší vývoj I/O funkcie pre grafiku, obrázky, dokumenty, programovacie jazyky;

Možnosť interaktívneho spracovania informácií pomocou prirodzeného jazyka;

Schopnosť samoučenia, asociatívnej konštrukcie a vyvodzovania záverov.

Programovacie jazyky v procese tvorby programov môžu implementovať prirodzené rozhranie medzi človekom a strojom. Jazyky na vysokej úrovni poskytujú:

Vysoká úroveň inteligencie pri interakcii používateľov s počítačovým systémom na rôznych úrovniach prístupu k databázam na výber potrebných informácií a znalostných báz na získanie nových nápadov potrebných na riešenie neznámych problémov;

Využitie existujúcich softvérových fondov zameraných na tradičnú počítačovú architektúru.

Špecializovaný počítače sú navrhnuté tak, aby výrazne zlepšili výkon pri riešení určité typyúlohy... To sa najskôr dosiahlo použitím paralelných výpočtov. Postupom času sa objavili stroje, ktoré boli založené na paralelnom vykonávaní rôznych funkcií alebo na duplikácii aritmetických zariadení, najmä procesorových matíc.

Paralelné architektúry

Paralelizmus sa vyvíjal dvoma smermi:

1) zlepšenie štruktúry počítača znížením rozdielu medzi rýchlosťou procesora a rýchlosťou prístupu k RAM;

2) opakovanie rovnakého typu počítačových zariadení, kombinované podľa určitej topológie.

Paralelnosť sa uplatňuje na niekoľkých hierarchických úrovniach, najmä:

1) úroveň úloh - medzi úlohami, ktoré sa vykonávajú na počítači, alebo medzi fázami úlohy;

2) úroveň programu – medzi časťami programu (napríklad v rámci hraníc cyklov);

3) úroveň príkazu - medzi fázami vykonávania príkazu (inštrukcie procesora);

4) aritmetické a bitové úrovne - medzi prvkami vektorovej operácie v rámci logických obvodov aritmetického zariadenia.

riaditeľ spôsobyzavedenie paralelizmu v počítačovej architektúre možno rozdeliť do nasledujúcich skupín:

- funkčné spracovanie- poskytovanie niekoľkých zariadení so schopnosťou vykonávať rôzne funkcie, najmä logické operácie, sčítanie, násobenie atď.

- spracovanie dopravníka- využitie princípu potrubia za účelom zvýšenia účinnosti procesorového zariadenia;

- spracovanie matrice- použitie matice identických prvkov spracovania so spoločným riadiacim systémom, kde všetky prvky vykonávajú rovnakú operáciu, ale s rôznymi údajmi;

- multiprocessing- vykonávané niekoľkými procesormi, z ktorých každý vykonáva svoje vlastné pokyny a všetky interagujú prostredníctvom spoločnej pamäte RAM.

Signál a mjednotlivé mikroprocesory

Procesory signálovej matrice - procesory,založené naprincíp riadeniasamotným potokomúdajov.

Príkazy sa začnú vykonávať hneď, ako budú dostupné ich operandy. V tomto prípade je príchod dát od susedných procesorov interpretovaný ako zmena stavu a iniciuje určitú akciu.

Signálové procesory fungujú podobne ako pri šírení signálu. Sú distribuovaným globálnym asynchrónnym maticovým výpočtovým systémom.

Mediálny systém - sieť procesorov,ktorí vykonávajú rytmickévýpočty a prenos údajov systémom.

Každý procesor pravidelne pumpuje dáta v každom časovom bode, pričom vykonáva určité krátke výpočty, takže tok dát je pravidelne ukladaný v sieti. Každý z týchto procesorov je zameraný len na jednu triedu úloh a preto patrí do triedy špecializovaných počítačov.

Na hardvérovej úrovni sa tieto počítače vyznačujú globálnou synchronizáciou, ktorá predurčuje výskyt takých problémov, ako je synchronizácia hodín, zvýšená spotreba energie, znížená spoľahlivosť atď.

Pre univerzálne streamingové multiprocesorové systémy sú významné problémy konfliktov, ktoré sú spojené s využívaním zdieľanej pamäte a interakciou procesorov. Tieto problémy boli vyriešené nahradením tokových systémov modulárnymi a lokálnymi (ktoré sú implementované v signálových maticových procesoroch).

Používa mnoho špecializovaných počítačov "Harvardská architektúra" , ktorého podstatou je to pamäťový priestor inštrukcieoddelené od pamäťového priestoruúdajov na súčasné načítanie príkazov a údajov.

RISC architektúra počítačov

Počítače s obmedzenou sadou inštrukcií/príkazov ( RISC - počítač so zníženou inštrukčnou sadou).

Základné vlastnosti počítačovs RISC-architektúra:

1) používanie príkazov s pevnou dĺžkou s malým počtom typov formátov;

2) pravidelnosť, ktorá vďaka jednoduchosti príkazov umožňuje používať rovnaké hardvérové ​​zariadenia na vykonávanie takmer všetkých príkazov;

3) vykonanie väčšiny príkazov v jednom strojovom cykle (taktovací cyklus);

4) zameranie na registre – všetky dátové operácie sa vykonávajú v registroch, okrem príkazov načítania a zápisu, ktorých realizácia je spojená s prístupom do pamäte.

Výhody RISC- architektúra:

1) porovnateľná jednoduchosť implementácie hardvéru;

2) rýchle dešifrovanie príkazov;

3) krátky čas cyklu a teda rýchle vykonanie príkazu;

4) schopnosť vytvoriť efektívny reťazec príkazov.

nevýhody RISC- architektúra:

1) relatívne nízka rýchlosť výmeny operandov a buniek pamäte s náhodným prístupom;

2) dodatočné softvérové ​​požiadavky.

Výkon moderných maticových a paralelných počítačov je pomerne vysoký a pri vykonávaní operácií s pohyblivou rádovou čiarkou dosahuje miliardy operácií za sekundu cez 64-bitové operandy. Pri riešení aplikovaných problémov sa ich výkon výrazne znižuje a približuje sa výkonu moderných univerzálnych počítačov.

Medzi modernými pipeline a maticovými MPS by sa mali menovať také superpočítače ako Cray MP atď.

Otázka. Úloha

1. Čo zobrazuje architektúra MPU (mikropočítača) a aký je jej rozdiel od architektúry MP?

2. Vysvetlite podstatu princípov modulárnosti, chrbtice, mikroprogramovateľnosti a pravidelnosti štruktúry, ktoré sa využívajú pri vývoji MPA, mikropočítača a MPS.

3. Na základe čoho sú klasifikované počítačové architektúry?

4. Čo je podstatou von Neumannovej počítačovej architektúry?

5. Čo je podstatou počítačovej architektúry Harvardu?

6. Uveďte spôsoby zavedenia paralelizmu do architektúry počítačov.

7. Vysvetlite podstatu multiprogramovanie počítačov.

8. Aký je princíp fungovania MP mediálnej siete a signálovej matrice MP, aké sú ich rozdiely?

9. Čo je podstatou RISC architektúry počítačov, aké má výhody a nevýhody v porovnaní s doteraz uvažovanými architektúrami?

Literatúra.

1. Mikroprocesor a mikroEOM vo virobnických systémoch: Posibnik - K .: Centrum Vidavnichy "Academy", 2002. - 368 s. (Alma mater).

2. Výpočtové systémy Korneev - M .: "Znalosti", 199.

3., Mikroprocesory Kiselev. - M .: "Znalosti", 199.