01 curs.protected.unlocked

Upload: iulian-alex

Post on 04-Nov-2015

212 views

Category:

Documents


0 download

DESCRIPTION

Informatica aplicata 2(microprocesoare)

TRANSCRIPT

  • Pagina 1 din 4

    Informatic Aplicat 2 CURS 1

    Istoric, tendine, comparaie ntre Microcontrolere, Microprocesoare i FPGA-uri. Logica boolean.

    Organizare curs: 7 spt. x 2 ore/curs. Organizare proiect: 14 spt. x 2 ore/proiect. Credite: 4K. Nota disciplin: 30% Curs (minim 5) + 70% Proiect (minim 5). *Club Microcontrolere ( http://ep.etc.tuiasi.ro/micro_cl.html )

    Bibliografie selectiv [1] Limbajul C Tehnici de programare, A. Srbu, Editura Gh. Asachi Iai, 2000. [2] Aplicaii Practice ale Microcontrolerelor , C. Aghion, O. Ursaru, PIM, Iasi-2009. [3] Silicon Laboratories, C8051F120 i C8051F340 Small Form Factor. [4] Programare C i C++ pentru Linux, Drago Acostchioaie. [5] Limbajele C i C++ pentru nceptori vol 1 i vol 2 Liviu Negrescu - microInformatic. [6] Microcontrolerul INTEL 8051.Aplicaii., P. Duma, Ed.TEHNOPRESS, Iai, 2004. [7] Phillips Semiconductors 80C51-Based 8-Bit Microcontrollers. [8] http://ro.wikipedia.org/wiki/Microcontroler

    nc din cele mai vechi timpuri (2000 .Hr.) oamenii au fost preocupai de crearea unor mainrii /echipamente pentru a realiza automat (fr intervenia uman) sau calcula (matematic) diferite operaiuni/sarcini n mod secvenial - cu scopul de a uura lucrul oamenilor n activitile lor i de a elimina eroarea uman. Dac la nceputuri aceste echipamente erau pur-mecanice, cu timpul ele s-au mbuntit trecnd prin etapa de realizare electro-mecanic pentru ca n final s fie transformate integral n sisteme/circuite electronice. De exemplu, transformarea circuitelor de calcul a fost destul de lent pn prin anii 1960 (cnd a aprut primul calculator electronic) urmnd ca din 1970 (an n care a aprut primul calculator de buzunar) pn n zilele noastre, aceste circuite electronice s-au dezvoltat ntr-un ritm alert determinat n bun msur de cerinele i nevoile cotidiene. Este greu de imaginat n zilele noastre realizarea activitilor zilnice fr banalul calculator - iar dezvoltarea acestora nu se oprete aici ci va continua cu ajutorul generaiilor ce vor veni. De cele mai multe ori funcionarea unui sistem de calcul are la baz un Circuit Integrat (CI) cu arhitectur intern complex, capabil s rezolve i s ia decizii pe baza unui program/algoritm pe care l execut. Dac la nceputuri acest algoritm era prencrcat n Circuitul Integrat direct de la realizarea n fabric a acestuia, n prezent aceste circuite pot fi programate (scrise/citite/terse) de milioane de ori. Cele mai cunoscute Circuite Integrate complexe sunt: Microcontrolerele, Microprocesoarele i FPGA-urile (eng. Field Programable Gate Array; rom. Arii Logice Programabile). Scopul acestui curs (Informatic Aplicat 2) nu este de a prezenta n detaliu funcionarea i particularitile categoriilor de circuite mai sus menionate (acest lucru se va face n cadrul altor discipline de specialitate), ci este acela de a realiza o introducere n conceptul de programare a Circuitelor Integrate complexe. Totui, pentru a avea o imagine de ansamblu a acestora, cteva caracteristici ce definesc Microcontrolerele, Microprocesoarele i FPGA-urile sunt date n cele ce urmeaz.

  • Pagina 2 din 4

    Microprocesorul

    Apare pentru prima dat (ca un tot unitar, ntr-un circuit integrat) n 1971 (microprocesor pe 4 bii - Intel i Texas Intruments) iar n 1972 apare primul microprocesor pe 8 bii (Intel). Este compus dintr-o Unitate Central de Procesare (CPU), Memorie i pini de Intrare/Ieire (I/O), aa cum este prezentat n Figura 1. Unitatea Central de Procesare execut instruciuni aritmetico-logice, instruciuni ce sunt citite dintr-o memorie ROM (eng. Read Only Memory - memorie ce nu se terge la dispariia alimentrii). Exist mai multe tipuri de memorii ROM folosite de un microprocesor, cel mai adesea se face referire la acea memorie ROM din care sunt citite instruciunile(+operanzii) ce sunt executate de Unitatea Central de Procesare (un exemplu concludent n acest sens este hard-disk -ul unui calculator, ce poate fi privit ca o memorie ROM). n Figura 2 se d un exemplu de microprocesor realizat de compania Intel.

    Rezultatele execuiei CPU-ului sunt stocate temporar n zone mici de memorie RAM (eng. Random Acces Memory; rom. Memorie cu Acces Aleator - memorie ce-i schimb valoarea la pierderea alimentrii; n limbaj popular se terge memoria). Trebuie menionat c zonele de memorie ROM i RAM din interiorul microprocesorului sunt de dimensiuni mici (dar cu acces rapid), deoarece acesta se bazeaz pe zone mari de memorie ROM i RAM aflate n exteriorul microprocesorului. [de exemplu, zone mici de memorie RAM dintr-un microprocesor se mai numesc cache L1, L2; zon mic de memorie ROM dintr-un microprocesor este zona boot]. Cu ajutorul pinilor de Intrare/Ieire ai microprocesorului se face schimbul de date (date de intrare sau de ieire) dintre acesta i diverse echipamente externe (exp. hard-disk, RAM, placa video, etc.)

    Microcontrolerul

    Are o arhitectur intern asemntoare cu cea a unui microprocesor (la nceput, n 1970 nici nu se fcea distincie ntre microprocesor i microcontroler) dar spre deosebire de microprocesor, acesta a cunoscut o altfel de dezvoltare, fiind orientat mai mult n utilizarea lui n mediul industrial (automatizri). De aceea a fost nevoie de creterea zonelor de memorie (RAM i ROM) de pe chip (Circuit Integrat) i adugarea a unor noi blocuri interne (timere, convertor analog-numeric, convertor numeric-analog, pwm, comunicaii: usb, ethernet, can, i2c, usart, etc.) n Figura 3 este prezentat o arhitectur intern a microcontrolerului Intel 8051.

    CPU

    memorie

    RAM ROM

    pini - interfataIntrare Iesire

    microprocesor

    Fig. 1 Arhitectura microprocesor Fig. 2 Exemplu de microprocesor

  • Pagina 3 din 4

    FPGA-ul

    FPGA-urile (Field Programmable Gate Array) au aprut ncepnd din 1970, dezvoltate iniial de Signetics. Acestea conin arii de pori logice i blocuri de memorie RAM pentru a se implementa calcule logice complexe. Conin porturi (pini I/O) bidirecionali de intrare/ieire de mare vitez pentru a se putea transfera rapid date seriale sau paralele (bus). n majoritatea cazurilor acestea au memorie volatil (RAM) fiind necesar o ncrcare a logicii digitale dintr-o memorie ROM (situat on-chip sau extern). Ca arhitectur intern FPGA-urile sunt realizate din arii de celule logice (pori logice) ce se pot interconecta ntre ele pe baza unui program. Arhitectura FPGA-urilor difer total de cea a unui microcontroler sau microprocesor. O arhitectur de baz a unui FPGA este prezentat n Figura 4 i este format din: pini intrare/ieire Input/Output, blocuri logice configurabile (CLB), logic de interconectare programabil i zone de memorie RAM. Cel mai des ntlnite limbaje de programare ptr. FPGA-uri, sunt: VHDL i Verilog.

    Logica boolean - pori logice (noiuni detaliate din aceast tematic vor fi studiate la disciplina Circuite Integrate Digitale - an2)

    Logica boolean se bazeaz pe dou tipuri de date/valori: adevrat sau fals, valori ce sunt implementate general n electronic sub forma: adevrat = 1 = + (plus), respectiv fals = 0 = - (minus). n cele ce urmeaz se vor utiliza valorile 1 pentru adevrat i 0 pentru fals. Valorile de 1 respectiv 0 se mai numesc valori digitale i reprezint valori posibile ale unui circuit digital. De exemplu, dac se aduce un semnal digital (prin fir/srm) ctre un microcontroler/microprocesor/FPGA, valoarea acestui semnal digital poate fi 1 sau 0, i nu o valoare intermediar. Exemplul de mai sus corespunde cazului n care se aduce un semnal de un bit ctre un microcontroler/microprocesor/FPGA.

    Pori logice 1. Poarta logic I

    a, b i c pot avea doar valori de 0 sau 1

    SERIALPORT

    ExternalInterrupts

    INTERRUPTCONTROL

    128 BytesRAM

    CPU

    OSC BUSCONTROL 4 I/O PORTS

    TIMER 1TIMER 0

    4KROM/

    EPROM

    ADDRESS/DATA

    P0 P2 P1 P3EA TxD RxDPSENALE

    RST

    Fig. 3 Arhitectura intern a microcontrolerului Intel 8051

    Fig. 4 Arhitectura FPGA

    a

    bc

  • Pagina 4 din 4

    c = a & b (unde & este operatorul porii logice I) Tabelul de adevr pentru aceast poart logic este: a b c =a&b 0 0 0 0 1 0 1 0 0 1 1 1

    2. Poarta logic SAU c = a | b (unde | este operatorul porii logice SAU)

    Tabelul de adevr pentru aceast poart logic este: a b c =a|b 0 0 0 0 1 1 1 0 1 1 1 1

    3. Poarta logic NU

    b = ~ a (unde ~ este operatorul porii logice NU)

    Obs. la operaii logice pe un bit, noiunea de negat sau complement este similar.

    Tabelul de adevr pentru aceast poart logic este: a b=~a 0 1 1 0

    4. Poarta logic XOR c = a ^ b (unde ^ este operatorul porii logice XOR)

    Tabelul de adevr pentru aceast poart logic este: a b c =a^b 0 0 0 0 1 1 1 0 1 1 1 0

    De reinut: bit = unitate de date (cea mai mic), poate avea valori de 0 sau 1. byte/octet = grupare de 8 bii.

    a

    bc

    a b

    a

    bc