Sunteți pe pagina 1din 30

SMC – subiecte teorie

1. Ce este un microcontroler si care sunt principalele resurse pe care trebuie sa le contina


Microcontrolerul este un microcircuit care încorporează o unitate centrală de prelucrare
(CPU) și o memorie împreună cu resurse care să îi permită interacțiunea cu mediul exterior.
Resurse pe care trebuie să le conțină:
 unitate centrală (CPU), cu un oscilator intern;
 memorie locală tip ROM/PROM/EPROM/FLASH/RAM;
 un sistem de întreruperi;
 intrări/ieşiri numerice (de tip port paralel);
 un sistem de timere-temporizatoare/numărătoare programabile;

2. Care sunt resursele care pot aparea doar la anumite familii de microcontrolere
Resurse pe care trebuie să le conțină – opționale:
 sistem de conversie analog numerică;
 un port serial de tip asincron şi/sau sincron, programabil;
 sistem de conversie numeric analogic şi/sau ieşiri PWM (cu modulare în durată);
 comparator analogic;
 memorie de date nevolatilă de tip EEPROM;
 facilități suplimentare pentru sistemul de temporizare/numărare (captare şi comparare);
 sisteme de monitorizare a funcționării în parametrii normali;
 facilități pentru optimizarea consumului propriu;

3. Aplicatie conversie 1
Sistemul zecimal: 465.7510 = 4*102 + 6*101 +
5*100 + 7*10-1 + 5*10-2

4. Aplicatie conversie 2
Sistemul binar: 110110.012 = 25 + 24 +
22 + 21 + 2-2 = 54.25

1
5. Aplicatie conversie 3
Sistemul hexazecimal: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A,
B, C, D, E, F

6. Explicati notiunile de: Bit, byte, registru


 Un bit este unitatea de bază a informației în sistemul binar.
 Un byte (octet) reprezintă 8 biți grupați.
 Registru ↔ celulă de memorie.
 Memorează starea unui cuvânt (word).
if (theory)
byte
else
if (practice)
registru

7. Ce sunt registii cu functii speciale. Exemple


Sunt conectați la circuite interne specifice: timer, ADC,
oscillator.

8. Ce este memoria. Explicatie generala

 Utilizată pentru stocarea de date.


 Fiecare locație de memorie are o adresă unică.
 Pot avea funcții de: scriere (W), citire (R),
scriere/citire (W/R).
 Într-un MC pot exista multiple tipuri de memorie

9. Tipuri de memorie: memoria RAM


Memoria RAM (Random Access Memory):
 Locațiile de memorie accesibile în orice ordine
 Poate fi citită și scrisă de unitatea centrală a MC
 Ocupă loc mult - prețuri crescute
 Tipuri de memorie RAM: DRAM, SRAM

2
10. Tipuri de memorie: memoria ROM
Memoria ROM (Read Only Memory):
 Poate fi doar citită
 Datele nu pot fi modificate sau pot fi dar cu mare dificultate
 Tipuri de memorie: PROM, EPROM, MaskedROM

11. Tipuri de memorie: memoria hibrida


Memoria Flash:
 Nevolatilă și reprogramabilă
 Nu pot fi șterse zone individuale (ștergere neselectivă)
 Poate fi ștearsă/scrisă de un număr foarte mare de ori
 Majoritatea MC actuale utilizează această memorie pentru stocarea programului

Memoria EEPROM:
 Nevolatilă, reprogramabilă
 Pot fi șterse zone individuale (ștergere selectivă)
 Număr limitat de scrieri/ștergeri
 Viteză mică de scriere
12. Unitatea centrala de procesare (CPU) – prezentare generala
Monitorizează și controlează toate procesele din
interiorul unui MC.
Principalele unități funcționale ale CPU sunt:
 Decodificatorul de instrucțiunii
 Unitatea Aritmetică și Logică
 Registrul Acumulator

13. Explicati: decodificatorul de instructiuni, Unitatea aritmetica si logica


Decodificatorul de instrucțiunii:
 Recunoaște instrucțiunile program și generează comenzi în concordanță cu acestea. Setul
de instrucțiuni este specific fiecărui MC

Unitatea Aritmetică și Logică:


 Realizează toate operațiile matematice și logice cu date
 Conține circuite combinaţionale pentru efectuarea de operații, registre pentru memorarea
locală a datelor și circuite pentru transferul de date între registre și cu exteriorul (circuite
de decodificare, codificare, multiplexare)

Registrul Acumulator:
 Utilizat pentru stocarea datelor până când anumite operații vor fi efectuate (șiftare,
adunare, etc.)

3
14. Comunicatia CPU cu exteriorul. Magistrale
Magistrala de adrese:
 transmite doar semnale de ieșire din microprocesor, fiind deci o magistrală
unidirecțională
 liniile de pe această magistrală se folosesc pentru adresarea locațiilor de memorie și a
porturilor de intrare - ieșire.

Magistrala de date:
 lărgimea magistralei de date este de obicei multiplu de octet (d = 8, 16, 32, 64...)
 liniile magistralei de date pot transmite bidirecțional informațiile (intrare sau ieșire din
UCP)

Magistrala de control: conține o diversitate de linii de control și sincronizare

15. Explicati Arhitectura Von-Neumann

 magistrală (de ex. de 8 biți)


 memorie comună pentru date și instrucțiuni
 Sunt necesare două etape pentru execuția unei
instrucțiuni:
 Extragere instrucțiune și decodificare
 Prelucrare dată din memorie

16. Explicati Arhitectura Harvard


 Spațiu de memorie separat pentru
instrucțiuni și date
 Magistrale proprii
 Execuția unei instrucțiuni necesită un ciclu
de clock
 Posibilitatea execuției cvasiparalele a
informațiilor pe cele două magistrale (citire
instrucțiune și accesare memorie)
 Implementarea unui mecanism pipeline
 Mai multe instrucțiuni se execută simultan,
dar decalat
 Arhitectura Harvard modificată: spații de memorie separate pentru program și date, dar
cu magistrale comune pentru adrese și date

17. Explicati setul de instructiuni al unui MC


 Setul de instrucțiuni reprezintă mulțimea de comenzi de bază pe care un microcontroler le
înțelege.

4
 Tipuri de instrucțiuni prezente la toate MC:
 Instrucțiuni aritmetice și logice 37
 Instrucțiuni de decizie care implementează o ramificație a grafului (bifurcație)
 Instrucțiuni pentru transferul datelor
 Instrucțiuni de test și instrucțiuni la nivel de bit
 MC pot avea 2 tipuri de seturi de instrucțiuni: RISC și CISC

18. Explicati instructiunile RISC si CISC


RISC (Reduced Instruction Set Computer):
 Recunoaște și execută doar operații de bază
 Operațiile complicate efectuate prin combinarea celor de bază
 Execuție rapidă și eficientă

CISC (Complex Instruction Set Computer)


 Peste 80 de instrucțiuni
 Pot fi specializate pentru funcții specific
 Multe din aceste instrucțiuni sunt foarte diferite între ele
19. Ce este circuitul oscilator. Tipuri

 Utilizat pentru a furniza MC-ului un semnal ceas (clock) pentru sincronizarea proceselor
interioare.
 Oscilatorul cu cuarț (XT):
 Circuit individual + condensatori
 Încapsulat (rezonator)

 Oscilatorul Rezistor – Condensator (RC):


 Nu are o precizie foarte bună
 Depinde de tensiunea de alimentare

20. Explicati notiunea de ciclu instructiune


 Este obținut de la circuitul oscilator
 Este obținut din “n” clock-uri egale (de ex pentru n=4: Q1, Q2, Q3, Q4)
 În Q1 este apelată instrucțiunea din memoria program, decodată, executată si scrisă în
registru de instrucțiuni în Q4
21. Explicati pe scurt conceputul de programare MC

 Scriere cod
 Interfață HW către MC
 Etapele programării unui MC

5
 Limbaje utilizate: Asamblare, C, Basic, Forth
 Limbajul de asamblare: cea mai rapidă execuție a codului
 Limbajul C: execuție rapidă a codului
 Compilatorul este utilizat pentru a genera codul mașină (ex: un fișier cu extensia *.hex -
Intel Hex Format)
 Circuitul programator face transferul de date către memoria microcontrolerului
 Comunicația serială este utilizată pentru transferul datelor

22. Programarea unui MC utilizand limbajul de asamblare


Limbajul de asamblare:
 Implementare ușoară pentru programe de mici dimensiuni
 Cea mai rapidă execuție a codului
 Cel mai compact cod
 Implementare complicată pentru programe de mari dimensiuni
 Analiza completă a resurselor utilizate
 Probleme la portarea codului, chiar și pe aceleași familii de MC

23. Programarea unui MC utilizand limbajul C


Limbajul C:
 Execuție rapidă a codului
 Ușor de portat pe alte compilatoare sau familii de MC
 Multe compilatoare disponibile
 Multe funcții predefinite
 Foarte răspândit ca și limbaj
 Dificil de utilizat la început
 Se pot utiliza unelte de analiza a codului (Polyspace verifica regulile MISRA)

24. Etapele necesare pentru programarea unui MC utilizandu-se limbajul C


Etapele parcurse pentru programare unui MC când este utilizat limbajul C:
 Scriere program in limbajul C
 Compilare program
 Cod program in format binar sau hexazecimal
 Programare microcontroler
 Executie program

25. Ce sunt porturile de intrare/iesire


 Fiecare MC are regiștri (porturi) legați la pinii
microcontrolerului
 Un pin este de I/O dacă i se poate schimba fluxul de
transfer al datelor de la intrare spre ieșire și

6
viceversa (prin soft)
 Pinii sunt grupați, în general câte 8, și formează un PORT

26. Principalale caracteristici/proprietati ale unui port


Principalele caracteristici/proprietăți/module ale unui port sunt:
 Registre de configurare a direcției
 Registre de achiziție/transmisie de date
 Anularea zgomotelor pe pinii de intrare
 Rezistențele de ”pull-up”
 Funcții multiple

27. Explicati ce este un port digital


Port digital:
 Valoarea citită de pe pin este digitalizată de MC în două stări: 1 sau 0
 Intervalele de High și Low depind de tipul MC
 Se poate folosi logică pozitivă sau logică negativa

28. Porturi I/O: Registru de setare a direcției datelor


 Două registre sunt importante când se discută de porturi I/O
 Registru de setare a direcției datelor:
 Fiecare port bidirecțional are un asemenea
registru
 Conține un bit de configurare pentru
fiecare pin al MC
 Funcționalitatea pinului se realizează prin
setarea/ștergerea bitului corespunzător din
registru (pot exista pe același port pini cu funcții diferite)

29. Porturi I/O: Registru corespunzător portului


Registru corespunzător portului:
 Utilizat pentru a controla nivelul tensiunii de pe
pinul de ieșire (high/1/5V sau low/0/0V)
 Pentru pinii setați ca ieșire, citirea registrului va
returna valoarea scrisă de utilizator (programator)
 Pentru pinii setați ca intrare, citirea registrului va
returna starea pinului de intrare

7
30. Precizati pe scurt transferul de date pe un port de intrare digital
 Transformarea tensiunii de intrare în valoare binară (port digital) presupune utilizarea
unuia sau mai multor circuite adiționale
 O soluție presupune utilizarea de bistabili de tip latch
 Dacă circuitul latch este declanșat de clock-ul sistemului, reținerea valorii pinului se va
face la începutul fiecărui ciclu
 astfel de soluție permite citirea stării pinului cu întârziere
 Este posibilă chiar pierderea impulsurilor mai scurte de un ciclu de clock

31. Precizati sursele de intarziere pe un port de intrare digital


 Întârzierea introdusă în exemplul anterior este: 𝒅𝒍𝒂𝒕𝒄𝒉 = (𝟎, 𝟏]
 Se definește întârzierea pe pinul de intrare astfel: 𝒅𝒊𝒏 = (𝒅min𝒊𝒏, 𝒅 𝒎𝒂𝒙 𝒊𝒏]
 altă problemă întâlnită des în aplicații practice are în vedere schimbări lente ale
semnalului de intrare - meta-stabilitate
 Un circuit latch cu o mărime de intrare nedefinită poate sa furnizeze la ieșire: low, high,
nedefinit, oscilații
 Pentru a evita o astfel de apariție a meta-stabilității se poate folosi un circuit de tip
Trigger-Schmitt
 Se obțin tranziții bine definite
 Sunt eliminate fluctuațiile tensiunii de intrare

32. Ce este un circuit de tip Trigger-Schmitt


Circuitul Trigger Schmitt:
 Convertește un semnal analogic într-
un semnal digital
 Utilizează 2 praguri: Vlo și Vhi
 Tensiunea de ieșire se calculează în
funcție de cele 2 praguri

33. Ce este un sincronizator


 În serie cu un circuit Trigger Schmitt sunt utilizate circuite latch
 Un sistem format dintr-un Trigger Schmitt si circuite latch poartă numele de sincronizator
 𝒅𝒔𝒊𝒏𝒄: numărul de cicluri de clock necesare pentru propagarea semnalului de la primul
latch de sincronizare până la pinul de latch
 Întârzierea pe pinul de intrare este în acest moment: 𝒅𝒊𝒏 = 𝒅𝒍𝒂𝒕𝒄𝒉 + 𝒅𝒔𝒊𝒏

8
34. Explicati notiunile de: rezistor de pull-up si pull-down
Rezistoarele de pull-up:
 ideale pentru utilizarea în aplicații care utilizează butoane, comutatoare sau optocuploare
 controlate de un registru care permite activarea/dezactivarea acestora
 nu afectează pinii setați de ieșire ci doar îi influențează în bine pe cei care sunt setați ca
intrare
Rezistoarele de pull-down:

35. Rolul unui rezistor de pull-up in cadrul unui circuit


Rezistoarele de pull-up:
 Rolul unui astfel de rezistor este acela de a conecta pinul
de intrare la o tensiune predefinită, dacă nu este
furnizată de HW extern
 Când butonul nu este apăsat pinul este în stare instabilă
 Rezistorul de pull-up setează pinul la o valoare definite

36. Functii multiple pe un pin al MC

 Pinii unui MC pot avea funcții multiple


 Când sunt utilizați în modul ”normal” - GPIO (General Purpose Input Output)
 Funcții adiționale pot include: I2C, SPI, USART, PWM, ADC
 Configurarea acestor funcționalități se face în SFR
 Când o funcție alternativă este activă pinul nu mai poate funcționa ca pin cu scop general

37. Explicati cum se pot utiliza butoanele si comutatoarele in aplicatii cu MC


Butoane și comutatoare:
 Pot apărea oscilații nedorite la comutare/apăsare
 Se pot filtra cu ajutorul unui filtru RC
 Se pot utiliza și filtre software

9
38. Explicati ce sunt si cum pot fi utilizare releele in aplicatii cu MC
Relee:
 Dispozitiv de comandă care este utilizat pentru a închide și a deschide un alt circuit
electric
 Este conectat la pinii MC și folosit pentru pornirea/oprirea de dispozitive precum:
motoare, transformatoare, becuri

39. Explicati cum pot fi utilizate LED-urile in aplicatii cu MC


Leduri și dispozitive cu leduri:
 Pentru aplicații cu multe LEDuri se recomandă utilizarea de componente cu un curent de
operare de aprox. 20mA
 Se pot multiplexa dispozitivele cu 7 segmente pentru a afișa mai multe numere în ”același
timp”

40. Explicati ce este un optocuplor


Optocuplor:
 Utilizat în aplicații ce presupun izolarea galvanică față de eventuale tensiuni sau curenți
periculoși
 Conține leduri și elemente sensibile la lumină, precum fototranzistori, fotodiode, etc

41. Ce este o intrerupere


Întreruperea reprezintă suspendarea procesului normal de execuție a programului pentru
rezolvarea unei probleme prioritare.
42. Precizati principalele caracteristici ale unei intreruperi
Caracteristici:
 Întreruperea, de regulă, este generată ca răspuns la un efect fizic intern sau extern, al unui
modul periferic
 Exemple de întreruperi: schimbarea nivelului logic al unui pin, sfârșitul unei perioade de
timp, sfârșitul unei operații de transmisie sau recepție de date, sfârșitul unei conversii etc.
 Tratarea unei întreruperi presupune existenta unei subrutine care să permită executarea
acestora Sistemul poate reacționa real-time la un stimul extern
 Sistemul de întreruperi poate fi activat/dezactivat
 Apariția unei întreruperi conduce la setarea unor indicatori care marchează acest
eveniment
 Întreruperile pot avea prioritate diferită

10
43. Explicati principiul de functionare al unei intreruperi: descriere generala
Principiul de funcționare al unei întreruperi:

44. Ce sunt vectorii de intrerupere


Tabelul vectorilor de întrerupere:
 Reprezintă legătura între întreruperi și rutina de întrerupere
 Este reprezentat sub forma unui tabel care conține informații despre fiecare vector de
întrerupere
 Vectorul de întrerupere este un număr asociat cu o întrerupere
 Ex. vector întrerupere microcontroler ATMega16

45. Precizati detaliile de functionare ale unei intreruperi


Principiul de funcționare al unei întreruperi:
 Programul execută instrucțiuni în MPF
 Când o întrerupere apare PC stivă: push(PC)
 În PC este salvată adresa 1 din ISR (din tabela vectorilor de întrerupere)
 Funcția de tratare a întreruperii este executată
 În PC este adusă valoarea instrucțiunii următoare: pop(PC) + 1

11
46. Explicati: intreruperi externe, intreruperi de timer
Întreruperi externe - Sunt de două tipuri:
 Active pe nivel de tensiune (Level-triggered Interrupts), întreruperea apare încontinuu
atâta timp cât linia are valoarea considerată (low sau high)
 Active pe schimbare de nivel (Edge-triggered) întreruperea apare doar când este o
schimbarea de nivel pe linia respectiva

Întreruperi interne corespunzătoare timerelor:


 Când valoarea din timer este resetată (overflow)
 Când valoarea din timer atinge o valoare prestabilită

47. Explicati: Intreruperi ADC, Intreruperi sisteme comunicatii


Întreruperi interne corespunzătoare ADC:
 Apare când este terminată o conversie analog-numerică

Întreruperi cauzate de sistemele de comunicație (ex. USART, I2C, SPI):


 Provocate de disponibilitatea emitorului sau receptorului
 Provocate de finalizarea transmisiei sau recepției de date

Întreruperi provocate de module specifice unui anumit MC:


 Oscilator, USB, scriere memorie (EEPROM)

48. Prezentati sistemul de prioritizare al intreruperilor


Prioritatea întreruperilor:
 În același moment pot apărea două cereri
diferite de întrerupere
 Este folosit un tabel cu priorități
 Prioritățile pot fi HW sau SW (poate
decide programatorul)
 Pentru 8051 (tip comun de arhitectură pentru MC) este următoarea ordine de priorități:

49. Explicati ce este un timer si un counter


 Un timer monitorizează semnale care au o distribuție în timp constantă și uniformă
(semnale de tact)
 Un counter monitorizează semnale care au o distribuție aleatoare în timp (semnale de la
dispozitive externe)

50. Unde poate fi utilizat un timer


Un timer poate fi utilizat pentru:
 Controlarea de evenimente
 Producerea de întârzieri foarte precise
12
 Generarea de semnale cu formă specific
 Contorizarea de evenimente/semnale din exterior
 Multi-tasking: prioritizarea evenimentelor

51. Explicati notiunile de frecventa si de perioada


Frecvență:
 Un semnal 𝒙(𝒕) este periodic, cu perioada 𝑻 dacă: 𝒙(𝒕) = 𝒙(𝒕 + 𝑻)
 Frecvența reprezintă numărul de apariții ale unui eveniment în cadrul unei unități de timp
(Hertz sau cicluri/sec).

Perioada este inversul frecvenței:


 𝒇 = 𝟏/𝑻
 Frec = 1Hz -> T = 1s

52. Ce este factorul de umplere


Factor de umplere
 Procentele dintr-o perioadă când semnal este active
 Este folosit pentru:
 Controlul motoarelor electrice
 Generarea de sunete (muzică electronică)
 Controlul sistemelor de iluminare
 Module de comunicație
 Module de conversie DAC

53. Explicati cum functioneaza un timer


Ce este un timer și cum funcționează:
 Este un contor (un registru) care își incrementează valoarea la fiecare ciclu de ceas
(generat de la oscilator intern sau ext.) pe un anumit front (crescător sau descrescător)
 Numărarea poate sa fie în ambele sensuri: up sau down
 Când este atins maximul se resetează
 Pentru o rezoluție de n biți intervalul este: [𝟎, 𝟐𝒏 − 𝟏]
 În general timerele sunt de 8 sau 16 biți
 La resetare timerele pot genera întreruperi

54. Explicati modalitatea de accesare a timerelor utilizandu-se intreruperile


 Apare la trecerea din valoarea maximă către valoarea de zero
 Un flag de tip TOF (timer overflow interrupt) este setat
 Întreruperea este validă dacă sistemul de întreruperi este setat corespunzător tipului de
întrerupere

13
55. Explicati modalitatea de accesare a timerelor utilizandu-se metoda de interogare
 Presupune citirea anumitor registre și așteptarea în bucle software a unor valori
 Avantaj: Acuratețea timer-ului este utilizată la maxim
 Dezavantaj: sunt pierdute cicluri mașină pentru interogare

56. Ce este un circuit de prescalare


Principalele caracteristici/funcții ale acestuia:
 Preia semnalul de ceas și îl împarte la anumite valori, presetabile (din registrul de
prescalare corespunzător)
 Are valori de forma 2P, unde P este nr. biți de prescalare
 Se recomandă utilizarea celei mai mici valori de prescalare

57. Explicati notiunea de PWM


Caracteristici și aplicabilitate:
 Utilizat pentru generarea unui semnal digital cu
factor de umplere și perioadă ajustabile
 Interfața PWM utilizează mai multe register
 Se poate utiliza la: ABS, controlul LED-urilor,
display-uri, motoare
 Este realizat dintr-un contor și două comparatoare

58. Explicati PWM utilizanduse metoda de incrementare sau decrementare contor


Utilizând incrementare sau decrementare contor:

14
59. Explicati PWM utilizanduse metoda de incrementare si decrementare contor
 Utilizând incrementare și decrementare contor
 Modificări asincrone ale valorilor counterului sau valori maxime pot produce perturbări
ale funcționării

60. Explicati cum se poate realiza o captura a unui eveniment extern

 Utilizat pentru a evidenția/marca apariția de evenimente externe


 Evenimente externe: modificarea fronturilor semnalelor
 Apariție eveniment - Input Capture Register (ICR) este updated
 Evaluarea timestamp-ului: 𝒕𝒆𝒗𝒆𝒏𝒊𝒎𝒆𝒏𝒕 − 𝒕𝒄𝒂𝒑𝒕𝒖𝒓ă ∈ (−𝒅𝒎𝒂𝒙𝒊𝒏 ,𝑷 − 𝟏 − 𝒅𝒎𝒊𝒏𝒊𝒏)
 Eroarea maximă între două evenimente succesive este: 𝒅𝒎𝒂𝒙𝒊𝒏 + 𝑷 − 𝟏 − 𝒅𝒎𝒊𝒏𝒊𝒏
 Obs: trebuie avută în vedere o valoare minimă a prescalarului
 Intervalul maxim între două evenimente (până la overflow) (𝟐𝒓−𝟏) ∙ 𝑷 unde, r reprezintă
rezoluția timerului

61. Ce este un watchdog timer


Watchdog timer:
 Utilizat pentru monitorizarea programului
 Verifică dacă poziții exacte (ale codului) au fost
atinse în timpul execuției programului
 Resetează programul în cazul funcționării
incorecte
 Poate genera resetări nedorite

62. Ce este un convertor analog numeric


 Un convertor analog-numeric realizează conversia unui anumit nivel de tensiune într-un
număr (reprezentare digitală)
 Reprezentarea digitală
poate fi interpretată de MC
 Reprezentarea se face în
general pe 8 sau 10 biți

15
63. Conversia analog numerica: exemplu, erori de conversie
Conversie analog numerica:
 Transformare semnal analogic în digital (3 biți)
 Erori de conversie (pentru un semnal de intrare)

64. Explicati ce este timpul de conversie


Timpul de conversie:
 Reprezintă intervalul de timp de la începutul conversiei până când rezultatul conversiei
este disponibil
 Frecvența de intrare maximă care poate fi procesată de ADC are în vedere teorema
eșantionări lui Shannon (criteriul Nyquist): 𝒇𝒎𝒂𝒙 < 𝒇𝒔 / 2 = 𝟏 / 𝟐𝝉𝒔 unde, 𝒇𝒎𝒂𝒙 este
frecvența maximă de intrare, 𝒇𝒔 reprezintă frecvența de eșantionare iar 𝝉𝒔 este perioada de
eșantionare minimă.
 Timpul de conversie poate fi scris astfel: 𝒕𝒄𝒐𝒏𝒗𝒆𝒓𝒔𝒊𝒆 = 𝝉𝑨𝑫𝑪 ∙ 𝒓 + 𝜶 ∙ 𝝉𝒔𝒊𝒔𝒕𝒆𝒎 Unde:
𝒕𝒄𝒐𝒏𝒗𝒆𝒓𝒔𝒊𝒆 timpul de conversie, 𝝉𝑨𝑫𝑪 perioada de conversie, 𝒓 nr. de biți conversie, 𝜶
constantă, 𝝉𝒔𝒊𝒔𝒕𝒆𝒎 perioada semnal ceas

65. Ce reprezinta procesul de cuantizare


Cuantizarea:
 Semnalul rezultat după conversie este o cuantizare a semnalului analogic de intrare
 Cuantizarea – împărțirea unui interval în subintervale măsurabile
 Intervalul de intrare este
împărțit în unități egale
(increment fix)
 Introduce eroare de cuantizare:
rotunjirea mărimi de intrare

16
66. Ce este rezolutia unui ADC
 Reprezintă numărul de stări de ieșire posibile:
 𝟐𝒓 stări posibile, r numărul de biți ai convertorului:
 𝐫 = 𝟖 - convertorul are 𝟐𝟖 = 𝟐𝟓𝟔 de stări
 𝐫 = 𝟏𝟎 - convertorul are 𝟐𝟏𝟎 = 𝟏𝟎𝟐𝟒 de stări
 𝐫 = 𝟏𝟐 - convertorul are 𝟐𝟏𝟐 = 𝟒𝟎𝟗𝟔 de stări
 Pentru rezoluții mari eroarea de cuantificare este mai mica

67. Ce este tensiunea de referinta


 Este utilizată în procesul de conversie (intervalul de conversie)
 Este exprimată prin două valori: 𝑽𝒓𝒆𝒇− și 𝑽𝒓𝒆𝒇+
 În general o tensiune 𝑽𝒓𝒆𝒇− devine 0 iar 𝑽𝒓𝒆𝒇+ devine 𝟐𝒓−𝟏
αV
 O mărime analogică cu valoarea de 𝛂𝑽 este convertită în digital: (𝟐𝒓−𝟏) ∙Vref
+ − Vref−

 O mărime digitală cu valoarea de 𝜶 corespunde unui semnal analogic de intrare:


α(Vref+ − Vref− )
𝜷𝑽 = Vref− + ∙ , r-1 e putere
2 r−1

68. Ce reprezinta etapa de esantionare-retinere


 Utilizată pentru a preveni deteriorarea rezultatului conversiei când apar fluctuații ale
semnalului de intrare
 Se poate realiza cu un filtru trece jos (RC)
 Se poate utiliza un circuit ca cel de mai jos:
 Circuitul de control (switch) poate
introduce erori

17
69. Precizati principalele tipuri de ADC
Convertoarele AN se pot împărții în două categorii:
 Cu buclă de reacție (fără integrare):
 Cu aproximări succesive
 Cu rampă în trepte
 Fără buclă de reacție
 Cu rampă liniară
 Paralel
 Serie

70. Prezentati ADC cu aproximatii successive

RAS – registru comparații successive


CNA – convertor analog numeric
REF – referință ADC
COMP – comparator
RM – registru memorie

71. Prezentati ADC cu rampa in treapta

18
72. Prezentati tipurile de erori ale unui ADC
 Erorile care pot apărea într-un ADC sunt:
 Erori de compensare (offset)
 Erori de amplificare
 Erori DNL/IDNL (Differential(Integral) Non-Linearity)

73. Ce este un circuit de tip comparator


 Utilizat pentru a realiza compararea a două semnale sau un semnal și o mărime de
referință
 Este alcătuit din 2 intrări analogice și o ieșire digitală
 𝑽𝟏 > 𝑽𝟐 𝒂𝒕𝒖𝒏𝒄𝒊 𝑶𝒖𝒕 = 𝟏
 𝑽𝟏 ≤ 𝑽𝟐 𝒂𝒕𝒖𝒏𝒄𝒊 𝑶𝒖𝒕 = 𝟎
 Semnalele de intrare: externe sau generate
intern
 Poate exista o întrerupere care marchează
modificarea ieșirii

74. Ce sunt sistemele de comunicatie si la ce pot fi utilizate?


 Permit transferul de date cu alte MC, periferice, PC
 Se pot împărții după mai multe criterii (proprietăți):
 Seriale
 Paralele
 Sincrone
 Asincrone
 Magistrală
 Punct la Punct
 Master-slave
 Egali
 Full-duplex
 Half-Duplex

75. Precizati principalele tipuri de retele de comunicatie


 Seriale
 Paralele
 Sincrone
 Asincrone
 Magistrală
 Punct la Punct

19
 Master-slave
 Egali
 Full-duplex
 Half-Duplex

76. Prezentati interfata seriala si paralela


 Interfața serială trimite datele secvențial, bit după bit (o line date)
 Interfața paralelă permite transferul pe mai multe linii de date, de obicei 4 sau 8
(jumătate de byte sau un byte)

77. Prezentati interfata sincrona si interfata asincrona


 Interfețele sincrone folosesc pentru receptor un clock sincronizat cu cel al emitorului
 Avantaj: risc mic de erori de sincronizare între E și R
 Interfețele asincrone sunt două semnale de clock nesincronizate
 Receptorul trebuie să știe înainte de începere rata de transfer
 Trebuie definite marcaje de start și stop
 Clock generat de E, R extrage clok-ul din semnalul primit

20
78. Prezentati sistemele de comunicatie full-duplex si half duplex
 Interfața full-duplex permite ca ambele părți să transfere date
 Interfața half-duplex permite transferul doar al unui nod
 O astfel de interfață necesită implementarea unui mecanism de facilitare a
accesului la resursa comună (linia de date)

79. Explicati interfata UART (descriere si schema)


 Acronim: UART (Universal Asynchronous Receiver Transmitter)
 Modul utilizat pentru comunicații asincrone
 Utilizează două linii: receptor (RxD) și emitor (TxD)
 Are mai mulți parametri configurabili:
 Număr biți date, Bit paritate, rata transfer, bit stop

80. Explicati parametrii configurabili ai interfetei UART


 Număr biți date:
 Dependent de producător, în general între 5 și 9 biți de date
 Bit paritate:
 bit care să marcheze paritatea: pară sau impară
 Ex. paritate pară: bit paritate = 1 dacă nr. biți din mesaj este par
 Rată transfer:
 Viteza de transmisie (biți/sec  bps)
 Valori cuprinse între 9600-115200 (depinde de clock)
 Bit stop
 Permite utilizarea unui singur bit de stop, sau doi biți de stop

21
 Formatul care permite descrierea configurației UART este: 𝑫 𝐄 𝐎 𝐍 𝐒
 D – numărul de biți de date
 S – numărul de biți de stop
 E|O|N – paritate pară, impară sau fără paritate
 Ex: 8biți date, paritate pară, 1 bit stop: 𝟖𝑬𝟏

81. Care este formatul mesajului pentru o interfata UART


 Următoarea structură de date este transmisă:
 un bit de start (0 logic)
 5-8 biți de date
 0-1 bit de paritate (pentru detecția erorilor)
 1-2 biți de stop (1 logic)
 În starea de așteptare (liberă) linia este High
 Cel mai puțin semnificativ bit este transmis primul

82. Prezentati cum este realizata sincronizarea intre E/R pentru interfata UART
 Comunicație asincronă -> E și R au clock independent
 R realizează supraeșantionare pentru sincronizarea cu E
 RxD este eșantionată de s ori pentru fiecare bit
 În general, s are valoarea 16
 Pentru Atmega16 eșantioanele 8, 9, 10 decid starea liniei
 Un registru cu deplasare și un buffer mai sunt necesari
 Sunt utilizate 2 registre:
 Un registru de deplasare
 Un registru buffer (parte din FIFO)

22
83. Explicati modalitatile prin care se pot gestiona erorile pentru o interfata UART
 Se utilizează bitul de paritate pentru depistarea erorii (1 bit eroare)
 Bitul de eroare_ paritate din registrul UART este setat
 Divergența ratei de transfer dinte E și R conduce la pierderea sincronizării
 Bitul de stop nu este recunoscut cu nivel High
 Bitul de frame_error din registrul UART este setat
 Datele din registrul buffer nu au fost citite în totalitate (o nouă transmisie a început)
 Datele din registrul de deplasare sunt pierdute
 Bitul de data_overun din registrul UART este setat

84. Ce reprezinta rata de transfer pentru comunicatia UART


 Provine de la clock-ul sistemului (registrul ratei de transfer )
 Clock-ul este scalat cu s de un registru prescalar doar la receptor
 Nu poate fi generată orice rată de transfer:
 Ex: 8MHz, s = 8 și rată_transfer = 115.2 kbps
 Prescalar este: (𝟖𝑴𝒉𝒛 / 𝒔)/115.2 = 8.68 (!!nu e număr întreg) ≈ 9
 Rată_transfer 𝒓𝒕 = 𝒇/𝒔∙𝒄𝒐𝒏𝒕𝒐𝒓 = 𝟖𝑴𝒉𝒛 / 𝟖∙𝟗 = 𝟏𝟏𝟏. 𝟏
 Eroarea 𝒆 = (𝒓𝒕𝒐𝒃ț𝒊𝒏𝒖𝒕ă / 𝒓𝒕𝒅𝒐𝒓𝒊𝒕ă − 𝟏)∙ 𝟏𝟎𝟎% = −𝟑. 𝟓%
 În general eroarea trebuie să fie ±2.5%

85. Ce este standardul RS-232

 UART descrie modul de comunicație serială asincronă fără specificații tehnice legate de
nivelurile de tensiune
 RS – 232 este un standard utilizat în general pentru comunicații unu-la-unu
 Are definite echipamentele care pot fi utilizate
 Sunt definite specificațiile electrice
 Sunt definite liniile de semnal
 RS-232 pentru calculator folosește 9 linii pentru transferul de date
 Conector de tip D-Sub9
 UART utilizează doar liniile RxD, TxD și Gnd din D-Sub9
 Limitele de tensiune pentru RS-232 sunt ±(3,18)V
 Liniile de control utilizează logică pozitivă
 Liniile de date utilizează logică negativă
 Max232 este utilizat pentru interfața MC cu calculatorul

86. Prezentati ce este interfata USART


 USART – Universal Synchronous Asynchronous Receiver Transmitter
 Extinde UART prin introducerea unui modul de sincronizare
 Este utilizată a treia linie pentru semnalul de clock

23
 Semnalul este generat de unul dintre partenerii de comunicație
 Este de s ori mai rapid decât varianta asincronă
 USART păstrează logica ambelor moduri de funcționare, sincron și asincron
 Dacă modul asincron este utilizat linia de clock nu este utilizată și poate fi
folosită ca linie de I/O general

87. Precizati principalele caracteristici ale interfetei SPI


 SPI (Serial Peripheral Interface)
 Comunicație serială:
 Sincronă, de tip punct la punct
 Utilizează principiul master-slave
 Full-duplex, master (MC), slave (dispozitive periferice)
 Sincronizarea se poate face pe ambele fronturi ale clock-ului
 Utilizează 4 linii de comunicație:
 MOSI (Master Out, Slave In): utilizată de master pentru a
transmite date către slave.
 MISO (Master In, Slave Out): utilizată de slave pentru a
transmite date către master.

88. Precizati liniile de transfer de date pentru comunicatia SPI


 SCK (System Clock): utilizată de master pentru a transmite semnalul de clock
 ̅̅̅
𝑆𝑆 (Slave Select): utilizat de master pentru a selecta dispozitivul slave

89. Prezentati principiul de functionare al interfetei SPI


 Master/Slave au un registru cu deplasare (operat de SCK)
 La fiecare clock, master msb (sau lsb) (MOSI)  slave lsb
 În același timp, slave msb (MISO)  master lsb
 După 8 cicluri de clock, master-ul și slave-ul au schimbat între ele datele (8 biți)
 Masterul adresează explicit dispozitivul slave prin setarea liniei 𝑺𝑺 la nivel low

24
90. Explicati cum se pot adauga noi dispozitive slave la comunicatia SPI
 Pentru fiecare dispozitiv slave este necesară utilizarea unei linii 𝑺𝑺
 Se pot utiliza circuite decodificatoare (M74HC238)
 Dacă nu este necesar transferul slave  master se poate folosi o legare înlănțuită (ex.
driver adresă LED)

91. Prezentati principalele caracteristici ale interfetei I2C


 I2C - Inter-integrated Circuit (dezvoltat/patentat de Philips)
 Interfață sincronă, master-slave, half-duplex
 Utilizează două linii pentru comunicație (master - slave):
 SCL (Serial Clock Line) pentru semnalul de clock (sincronizare)
 SDA (Serial Data Line) pentru transferul de date
 Se pot seta trei moduri de transmisie de date:
 Modul standard - 100Kbit/sec
 Modul rapid - 400Kbit/sec
 Modul extra-rapid - 3.4Mbit/sec
 Protocolul conține un mecanism de administrare a modulelor pe magistrala I2C - pot
exista mai multe dispositive master
 Ex: sistem cu mai multe MC

92. Cum se poate realiza extensibilitatea interfetei I2C (precizati rolul rezistentelor de pull up).

93. Care sunt modurile de adresare in cadrul interfetei I2C


 I2C suportă adresare pe 7 sau 10 biți
 La adresarea pe 7 biți:
 Dispozitivele de pe bus sunt identificate după adresă (7 biți)
o 4 MSB sunt predefiniți de producător
o 3 LSB pot fi definiți de programator
 Adresele: 0000XXX și 1111XXX sunt rezervate
 La adresarea pe 10 biți:
 adresarea pe 7 biți + 3 noi biți

25
94. Cum se realizeaza transferul de date pentru o interfata I2C
 Nivele tensiune:
 Low: -0.5÷0.3Vdd
 High: 0.7Vdd÷Vdd+0.5
 Liniile au caracteristici dominante și recesive
 Un dispozitiv aut = 0 -> linia = 0 chiar daca alte dispozitive generează out
=1
 0 este dominant, 1 este recesiv (0 câștiga tot timpul)
 Mai poartă numele de ”wired AND” (toti E out = 1  line = 1)
 Un pachet I2C are forma următoare:

 În starea de așteptare liniile SDA și SCL sunt high

95. Explicati: conditia Start, Stop, Repetare, R/W, ACK pentru


I2C
 Condiția de Start sau Repetare start:
 SDA – front descrescător (high - low)
 SCL – nivel high
 RS – înlocuiește perechea Start/Stop
 ̅ indică direcția transmiterii datelor
R/𝑊
 R/𝑊 ̅ - high: master–ul citește date de la slave
(primește și Ack)
 R/𝑊 ̅ - low: master-ul trimite date la slave
 Confirmarea primirii datelor este realizată cu ̅̅̅̅̅̅
𝐴𝐶𝐾
̅̅̅̅̅̅
 Receptorul trimite 𝐴𝐶𝐾 după fiecare 8 biți
primiți
 ̅̅̅̅̅̅
𝐴𝐶𝐾 presupune trecerea SDA în starea low
 Condiția de STOP (P):
 SDA – front crescător (low - high) -> SCL –
nivel high

26
96. Extinderea adresei la 10 biti la master pentru I2C
Extinderea adreselor – 10 biți
 Masterul trimite 11110XX către slave, și R/𝑊 ̅ =0
 XX sunt MSB din adresarea pe 10 biți
 Fiecare slave compară adresa proprie cu MSB XX primit, și trimite ACK dacă
corespunde
 Masterul trimite următorii 8 biți ai adresei

97. Explicati citirea de la slave pentru adresarea pe 10 biti la comunicatia I2C


Extinderea adreselor – 10 biți
 Citirea de la slave presupune:
 Masterul trimite 11110XX către slave, și R/𝑊 ̅ =0
 Slave-ul trimite ACK
 Masterul trimite următorii 8 biți ai adresei
 Slave-ul trimite ACK
 Masterul trimite 11110XX către slave, și R/𝑊 ̅ = 1 (slave este trecut în
modul emitor – transmite date)
 Slave-ul transmite datele

98. Prezentati principalele etape implicate in cadrul proiectarii unei aplicatii cu MC(etapa de
proiectare, etapa de testare)
 Realizarea caietului de sarcini
 Partiționarea sistemului în subsisteme
 Utilizarea de module de proiectare, de exemplu diagrame UML
 Transformarea diagramelor UML în cod
 Realizarea unui plan de testare
 Documentație pentru soluțiile implementate
 Proiectarea unui sistem cu MC

27
99. Prezentati pe scurt etapele necesare pentru proiectare si testare

100. Explicati etapa de descriere a sistemului si de realizare a caietului de sarcini

101. Ce reprezinta partitionarea sistemului


 Având caietul de sarcini disponibil, este necesară împărțirea sistemului în subsisteme
 Problema este modalitatea de interconectare între subsisteme
 Se utilizează diagrame bloc pentru definirea subsistemelor
 Prezintă ierarhia dintre subsisteme
 Interacțiunea dintre componentele SW și HW
 Interfața către alte module
 Partiționarea se realizează până la nivel unic funcțional
 Ex: Inițializare PORT intrare
 Este necesară alegerea modului de implementare pentru fiecare subsistem: nivel SW sau
nivel HW

28
102. Cum se poate realiza detalierea unui subsistem
 Se poate utiliza UML (Unified Modeling Language)
 UML – metodă standardizată de documentare a sistemelor
 Se poate utiliza diagrama de activități
o Este un tool din UML pentru documentarea operațiilor și funcționalității
unui sistem
 Diagrama UML trebuie să fie suficient de explicită încât să se poată scrie
algoritmii direct din ea

103. Explicati ce presupune scrierea si testarea primară a codului


 Diagrama detaliată a tuturor subsistemelor este finalizată
 Codul în limbajul C sau asamblare este implementat
 Se au în vedere avantajele/dezavantajele ambelor limbaje
 Validarea corectitudinii codului -> testarea
 Nu este indicat să testăm direct pe echipamentul HW al sistemului (poate fi
distrus)
 Se utilizează simulatoare pentru verificarea funcționării
 Se implementează HW simplu care imită comportamentul celui real: butoane,
leduri, osciloscop, debugging pe PC sau LCD
 Ex: intrările cu butoane, ieșirile cu LED-uri, semnale de reacție cu potențiometre (analog)
sau butoane (digital), PWM cu osciloscop

104. Ce reprezinta planul de testare


 După ce un modul low-cost de testare a fost implementat este necesar un plan detaliat de
testare
 Testele trebuie dezvoltate astfel încât:
 Să îndeplinească toate cerințele din caietul de sarcini
 Să satisfacă criterii de performanță într-un mediu real
 Să verifice funcționarea în scenarii accidentale
 După fiecare etapă de testare trebuie elaborată documentația corespunzătoare
 După eventuale erori testele trebuie rulate din nou
 Este posibil ca noi teste să fie incluse după modificările făcute

29
 După testele de funcționare corectă ale sistemului (pe platforma de simulare) este
necesară o testare atipică
 Se încearcă blocarea sistemului
 Se încearcă combinații ale mărimilor de intrare care nu au fost prevăzute în
proiectarea inițială
o Sistemul trebuie sa fie intolerabil la astfel de modificări
 După terminarea tuturor testelor pe modulul de simulare, se realizează aceleași teste și pe
HW real
 Etapa de testare poate include și etape de trimitere a modelelor de simulare către firma
contactată pentru a fi testată și de aceasta

105. Descrieti etapa de documentare


 parte din documentație este deja disponibilă (etapele anterioare)
 Documentația trebuie să cuprindă:
 Descrierea sistemului, a cerințelor (caietul de sarcini), diagramele bloc,
diagramele UML, planul de testare, rezultatele testelor, codul documentat
 Codul trebuie documentat, descrierea funcțiilor (claselor daca este cazul), parametrii de
intrare, de ieșire, valori returnate
 Algoritmii din interiorul funcțiilor
 Numele variabilelor și funcțiilor trebuie să fie sugestive
 Se pot utiliza notații consacrate pentru nume de variabile (de ex. în funcție de
tipul lor: int nContor = 0;)

30

S-ar putea să vă placă și