+ All Categories
Home > Documents > Curs 3 limbaje programare

Curs 3 limbaje programare

Date post: 22-Feb-2023
Category:
Upload: upg-ploiesti
View: 0 times
Download: 0 times
Share this document with a friend
25
Transcript

IntroducereIntroducere

Microcontrolerul este un microcomputer construit dintr-un singur chip de siliciu

este un sistem care include cel putin un microprocesor, memorie de program,memorie de date si I/O (input/output = unitate de intrare/iesire)

microcontrolerele se gasesc in multe aparate de uz casnic: cuptor de microunde,telecomanda TV, Hi-Fi, CD player, etc.

micro = dispozitiv mic

controler = poate fi folosit pentru aplicatii de control

diferenta dintre microcontroler si microprocesor: microprocesorul are nevoie dealte componente pentru a functiona (memorie de program si de date, dispozitiveI/O, circuit de ceas extern), microcontrolerul are aceste componente incorporatepe acelasi chip

toate microcontrolerele opereaza pe un set de instructiuni stocate in memorie

microcontrolerul extrage instructiunile una cate una din memoria de program,decodeaza instructiunile si executa operatiile cerute

Curs 3

un microcontroler poate fi programat utilizand un limbaj de asamblare(dezavantaje: consta in mnemonice, este greu de invatat, difera de la producatorla producator) sau un limbaj de nivel inalt, ca de ex. BASIC, PASCAL, C (avantaje:mai usor de invatat, se pot realiza usor programe complexe)

microcontroler PIC

microcontrolerul executa un program care este incarcat in memoria lui deprograme

Curs 3

datele sunt obtinute de la dispozitive externe (intrari), manipulate iar apoi trimisela dispozitivele externe (iesiri)

ex. cuptor cu sistem pentru controlul temperaturii: microcontrolerul citestetemperatura utilizand un senzor de temepratura; in functie de temperaturadorita, se actioneaza un radiator sau un ventilator

sistem de control al temperaturii din cuptor cu un microcontroler

intr-un sistem mai complex, am putea avea o tastatura numerica pentru a setatemperatura si un LCD pentru afisarea temperaturii curente

Curs 3

sistem de control al temperaturii cu tastatura si LCD

un sistem mai complex ar include o alarma pentru a informa utilizatorul dacatemperatura este in afara intervalului dorit

valorile temperaturilor pot fi trimise unui calculator in fiecare secunda pentruarhivare si procesare suplimentara (ex. reprezentare grafica a temperaturilor)

microcontrolerele sunt clasificate relativ la numarul de biti pe care proceseaza:cele mai raspandite sunt microcontrolerele pe 8 biti, cele pe 16 sau 32 biti suntmult mai puternice si mult mai scumpe

Curs 3

arhitectura microcontrolerului

un microcontroler este construit dintr-un microprocesor, memorie si I/O

microprocesorul consta in unitatea centrala de procesare a datelor (CPU = CentralProcessing Unit) si unitatea de control (CU = Control Unit)

unitatea centrala este “creierul” microcontrolerului deoarece aici se efectueazatoate operatiile aritmetice si logice

unitatea de control controleaza operatiile interne microprocesorului si trimitesemnale de control catre celelalte parti ale microcontrolerului pentru ca acesteparti sa execute instructiunile necesare

memoria:

memoria de program – stocheaza programele scrise de programator; este omemorie non-volatila (datele nu se pierd daca nu se alimenteaza cu tensiune)

memoria de date – stocheza datele temporare necesare programului careruleaza, este de obicei volatil (se sterge daca nu este alimentata cu tensiune)

Curs 3

2.5.1 Memoria2.5.1 Memoria

stocheaza informatii

pentru o anumita intrare obtinem continutul

unei locatii de memorie adresate

memoria consta in locatii de memorie si prin

adresare selectam o locatie specifica

linia de control R/W determina daca se

efectueaza o operatie de scriere sau citire din

memorie

daca R/W = 1, se executa citire din memorie

daca R/W = 0, se executa scriere in memorie

exista diferite tipuri de memorie utilizate in

microcontroler: RAM, ROM, EPROM, EEPROM, model simplificat al unei unitati de memorie

Flash EEPROM

Curs 3

RAM (Random Access Memory)RAM (Random Access Memory)

stocheaza de obicei datele utilizate intr-un program

este o memorie volatila = datele se pierd in momentul in care nu mai estealimentata cu tensiune

pentru microcontroler se folosesc de obicei 256 bytes de RAM

ROM (Read Only Memory)ROM (Read Only Memory)

stocheaza de obicei programe si date constante

este programat in timpul procesului de fabricatie si continutul acestuia nu poate fischimbat de utilizator

EPROM (Erasable Programmable Read Only Memory)EPROM (Erasable Programmable Read Only Memory)

continutul poate fi sters utilizand lumina ultravioleta

memoria poate fi reprogramata de utilizator

Curs 3

EEPROM (Electrically Erasable Programmable Read Only Memory)EEPROM (Electrically Erasable Programmable Read Only Memory)

continutul poate fi sters si poate fi reprogramat prin utilizarea unui program scrisde utilizator

dezavantaj: functioneaza lent

Flash EEPROMFlash EEPROM

datele sunt sterse si reprogramate prin utilizarea unui dispozitiv programator

avantaj: functioneaza foarte repede

Curs 3

2.5.22.5.2 UnitateaUnitatea aritmeticaaritmetica sisi logicalogica

numita si unitatea centrala de procesare a datelor (CPU)

are abilitatea de a multiplica, imparti, scadea si de a-si muta continutul dintr-olocatie de memorie in alta

locatiile de memorie ale microprocesorului

se numesc registrii

registrii stocheaza datele utilizate de

CPU pentru diferite calcule, precum stocheaza

si rezultatele operatiilor efectuate de CPU

model simplificat al unitatii aritmetice si logice

Curs 3

2.5.32.5.3 MagistralaMagistrala

daca de ex. dorim sa adunam continuturile a doua locatii de memorie si sareturnam rezultatul in memorie, avem nevoie de o conexiune intre unitateacentrala si memoria

aceasta conexiune, prin care se deplaseaza datele de la unitatea centrala catrememorie, se numeste magistrala

fizic este alcatuit dintr-un

grup de 8, 16 sau mai multe fire

magistrala pentru adrese – este

alcatuita din atatea linii, cata cantitate

de memorie dorim sa adresam

- transmite adrese de la CPU la

memorie

magistrala pentru date – este la

fel de lata ca si datele pe care le

transmite conexiunea intre CPU si memorie

- conecteaza toate blocurile functionale intr-un microcontroler Curs 3

2.5.42.5.4 UnitateaUnitatea dede intrareintrare//iesireiesire

unitatea centrala si memoria, conectate prin magistrale, compun un sistem carepoate functiona individual, insa care nu are contact cu lumea exterioara

pentru a compensa aceasta deficienta, trebuie adaugat un alt bloc functional carecontine mai multe locatii de memorie, care sunt conectate la magistrala de datepe de o parte, si la liniile (pinurile) de iesire ale microcontrolerului pe de alta parte

aceste locatii de memorie se

numesc porturi

tipuri de porturi: intrari, iesiri sau

porturi bidirectionale

intai trebuie ales portul cu care

dorim sa lucram, dupa aceea se trimit

date acelui port sau se citesc date de pe

acel port unitate de intrare/iesire

aceste porturi se comporta asemenea locatiilor de memorie: se citeste informatie

din locatie sau se scriu date in locatie

Curs 3

2.5.52.5.5 InterfataInterfata serialaseriala

comunicarea seriala inseamna transmiterea datelor cate un bit deodata,secvential, pe un singur fir

in contrast, comunicarea paralela inseamna transmiterea a mai multor biticoncomitent, pe mai multe fire

pentru a exista o comunicare eficienta intre doua dispozitive, inainte decomunicare se stabilesc anumite reguli care definesc cum decurge schimbul dedate

aceste reguli se numesc protocoale

protocolul folosit intr-o comunicare

dintre diferite dispozitive este stabilit

in prealabil

comunicare seriala

Curs 3

ex. protocolul NRZ (Non-Return to Zero):

pe linia de transmisie se trimite un “1” logic inainte de transferul de date

cand incepe transferul, intai se trimite un “0” logic pentru o perioada de timp T siin acest fel receptorul stie ca va primi date

transmitatorul pune pe linia de comunicare mai multe “0” si “1” logice, incepandcu cel mai putin semnificativ bit (LSB) si incheiand cu cel mai semnificativ bit(MSB)

fiecare bit este transmis pe linia de comunicare pentru o perioada de timp T

dupa transferul si celui de-al optulea bit, se transmite din nou “1” logic pentru amarca sfarsitul transferului unei unitati de date, 8 biti = 1 byte

Curs 3

o configuratie tipica de interfata seriala consta in 3 linii: o linie pentrureceptionare de date, o linie pentru transmitere de date si o linie de referinta

intr-o asemenea configurare seriala se pot trimite date si receptiona date inacelasi timp – comunicare full-duplex

comunicare half-duplex – comunicarea este posibila in ambele directii(receptionare, transmisie), insa nu simultan

comunicare simplex – comunicarea este posibila intr-o singura directie (transmisiesau receptie de date)

Curs 3

2.5.62.5.6 NumaratorNumarator

unitatea de ceas genereaza semnale in intervale de timp regulate

la baza generatorului de ceas sta un numarator, care este un registru a caruivaloare numerica se incrementeaza cu unu in intervalele pare

Curs 3

2.5.7 Watchdog2.5.7 Watchdog

sa presupunem ca din cauza unor interferente perturbatoare, microcontrolerulintrerupe executarea programului, sau programul se executa incorect

daca ar fi vorba de un calculator, un simplu reset ar solutiona problema, insa nuexista butoane de reset pe microcontrolere

din acest motiv trebuie introdus un alt bloc functional in diagramamicrocontrolerului: watchdog-ul

watchdog-ul este un numarator, unde programul trebuie sa scrie cate un “0” defiecare data cand se executa corect

in cazul in care programul se blocheaza, nu se va mai scrie “0” si dupa un anumittimp numaratorul va reseta microcontrolerul

acest detaliu de proiectare asigura functionarea corecta a microcontrolerului faraa fi necesara supravegherea umana

Curs 3

2.5.8 Convertor analog2.5.8 Convertor analog--digitaldigital

semnalele trimise de periferiale sunt substantial diferite de cele pe caremicroprocesorul le poate intelege (1 si 0)

din acest motiv, semnalale care provin de la periferiale trebuie transformate intr-un semnal digital (1 si 0)

aceasta sarcina este indeplinita de convertorul analog-digital

Curs 3

pasii de transformare a unui semnal analog intr-un semnal digital

Curs 3

toate blocurile functionale prezentate sunt asamblate intr-un componentelectronic

blocurile interne vor fi accesate prin pin-urile externe

configuratia fizica a interiorului

microcontrolerului

liniile de la centru spre margine reprezinta firele care conecteaza blocurile internede pini

Curs 3

sectiunea centrala a unui microcontroler cu elementele de baza si conexiunileinterne

Curs 3

2.5.92.5.9 ProgramulProgramul

ex. de program:

acest program aduna continuturile a doua locatii de memorie si trimite suma laportul A

REGISTER1 = MEMORY LOCATION_A – continutul locatiei de memorie A estemutat intr-un registru intern al unitatii logice si aritmetice

REGISTER2 = MEMORY LOCATION_B – continutul locatiei de memorie B estemutat intr-un registru intern al unitatii logice si aritmetice

PORT_A = REGISTER1 + REGISTER2 – unitatea logica si aritmetica adunacontinuturile celor doi registrii si trimite rezultatul la portul A, pentru ca rezultatulsa fie vizibil utilizatorilor

programarea microcontrolerelor se poate efectua in mai multe limbaje deprogramare: Assembler, C, Basic

Curs 3

Assembler:

limbaj de programare de nivel jos

se programeaza incet, dar ocupa cea mai mica cantitate de spatiu in memoriesi returneaza cel mai bun rezultat din punct de vedere al vitezei executieiprogramului

limbajul de programare utilizat cel mai des la microcontrolere

C:

limbaj de programare de nivel inalt

programul este mai usor de scris si de inteles, dar se executa mai incet decatprogramul scris in assembler

Basic:

este cel mai usor de invatat, iar instructiunile folosite se aseamana foartemult cu argumentarea umana

se executa incet

Curs 3

Curs 3


Recommended