Subiecte SI Rezolvate de Mine

46
1 1. Notiunea de SI. Prezentati diferentele fata de calculatoarele de uz general . Definiţia 1: Un SI este un sistem integrînd hardware şi software şi proiectat pentru o anumită funcţionalitate. Definiţia 2: Un SI este in sistem de calcul cu scop predefinit inclus într – un dispozitiv pe care îl conduce. Definiţia mea: SI constituie un subdomeniu al domeniului ingineriei calculatoarelor, bazat pe circuite logice programabile de utilizator şi orientat pe aplicaţii de timp real. Diferenţe ale SI faţă de calculatoarele de uz general: -Interfaţa cu omul: led – uri, LCD – uri, comutatoare, minitastaturi; -Sisteme de intrare/ ieşire simple, fără periferie; -Pot include porturi de diagnosticare; -Pot include FPGA – uri, ASIC – uri, circuite analogice; 2. Caracteristici si cerinte ale SI. Conectare la mediul exterior, monitorizîndu l, prin intermediul senzorilor şi comandîndu – l, prin intermediul actuatorilor. Un actuator poate fi definit ca un dispozitiv care converteşte valori numerice în efecte fizice. Funcţionare reactivă: un sistem reactiv este în continuă interacţiune cu mediul înconjurător şi execută sarcinile la rata determinată de mediu; un sistem reactiv poate fi gîndit ca fiind într – o anumită stare, aşteptînd o intrare; pentru fiecare intrare execută una sau mai multe operaţii şi generează o ieşire; un asemenea sistem poate fi modelat foarte bine de un automat; Funcţionare în timp real: timpul devine un parametru al execuţiei operaţiilor; există constrîngeri de timp hard (produc efecte grave, uneori dezastruoase, la nerespectare) şi soft (produc efecte negative la nerespectare); Eficienţa: un SI trebuie să fie eficient; aceasta poate fi evaluată cu următoarele metrici: Consumul de energie: trebuie minimizat, mai ales în cazul SI mobile; Dimensiunea codului: cod mare → memorie de program mare, posibil externă → circuite suplimentare → dimensiune mai mare a SI, consum mai mare, fiabilitate mai mică; Execuţie implicînd minim de circuite; Greutate şi dimensiune mici; Cost redus. Funcţionare în medii grele: căldură excesivă, vibraţii, coroziune, fluctuaţii ale tensiunii de alimentare; Dependabilitate: foarte importantă datorită conexiunii cu mediul exterior; cuprinde următoarele aspecte ale unui sistem: Fiabilitate: probabilitatea ca un sistem să nu se defecteze; Mentenabilitate: probabilitatea ca o defecţiune să poată fi reparată într – un timp anumit; Siguranţă: probabilitatea ca o defecţiune să nu cauzeze efecte catastrofale; Disponibilitate: probabilitatea ca un sistem să fie disponibil. 3. Directii in studiul SI. Hardware şi circuite de bază (microcontrolere, DSP – uri); Limbaje de programare; Sisteme de operare; Reţele de SI; Modelare, simulare şi validare; Aplicaţii

Transcript of Subiecte SI Rezolvate de Mine

Page 1: Subiecte SI Rezolvate de Mine

1

1. Notiunea de SI. Prezentati diferentele fata de calculatoarele de uz general.

Definiţia 1: Un SI este un sistem integrînd hardware şi software şi proiectat pentru o anumită funcţionalitate.

Definiţia 2: Un SI este in sistem de calcul cu scop predefinit inclus într – un dispozitiv pe care îl conduce.

Definiţia mea: SI constituie un subdomeniu al domeniului ingineriei calculatoarelor, bazat pe circuite logice

programabile de utilizator şi orientat pe aplicaţii de timp real.

Diferenţe ale SI faţă de calculatoarele de uz general:

-Interfaţa cu omul: led – uri, LCD – uri, comutatoare, minitastaturi;

-Sisteme de intrare/ ieşire simple, fără periferie;

-Pot include porturi de diagnosticare;

-Pot include FPGA – uri, ASIC – uri, circuite analogice;

2. Caracteristici si cerinte ale SI. Conectare la mediul exterior, monitorizîndu – l, prin intermediul senzorilor şi comandîndu – l, prin intermediul

actuatorilor. Un actuator poate fi definit ca un dispozitiv care converteşte valori numerice în efecte fizice.

Funcţionare reactivă: un sistem reactiv este în continuă interacţiune cu mediul înconjurător şi execută sarcinile

la rata determinată de mediu; un sistem reactiv poate fi gîndit ca fiind într – o anumită stare, aşteptînd o intrare;

pentru fiecare intrare execută una sau mai multe operaţii şi generează o ieşire; un asemenea sistem poate fi

modelat foarte bine de un automat;

Funcţionare în timp real: timpul devine un parametru al execuţiei operaţiilor; există constrîngeri de timp hard

(produc efecte grave, uneori dezastruoase, la nerespectare) şi soft (produc efecte negative la nerespectare);

Eficienţa: un SI trebuie să fie eficient; aceasta poate fi evaluată cu următoarele metrici:

Consumul de energie: trebuie minimizat, mai ales în cazul SI mobile;

Dimensiunea codului: cod mare → memorie de program mare, posibil externă → circuite suplimentare →

dimensiune mai mare a SI, consum mai mare, fiabilitate mai mică;

Execuţie implicînd minim de circuite;

Greutate şi dimensiune mici;

Cost redus.

Funcţionare în medii grele: căldură excesivă, vibraţii, coroziune, fluctuaţii ale tensiunii de alimentare;

Dependabilitate: foarte importantă datorită conexiunii cu mediul exterior; cuprinde următoarele aspecte ale unui

sistem:

Fiabilitate: probabilitatea ca un sistem să nu se defecteze;

Mentenabilitate: probabilitatea ca o defecţiune să poată fi reparată într – un timp anumit;

Siguranţă: probabilitatea ca o defecţiune să nu cauzeze efecte catastrofale;

Disponibilitate: probabilitatea ca un sistem să fie disponibil.

3. Directii in studiul SI. Hardware şi circuite de bază (microcontrolere, DSP – uri);

Limbaje de programare;

Sisteme de operare;

Reţele de SI;

Modelare, simulare şi validare;

Aplicaţii

Page 2: Subiecte SI Rezolvate de Mine

2

4. Directii in studiul SI.Legătura sisteme încorporate – „Ubiquitous and Pervasive

Computing”

Primul val în domeniul calculatoarelor: calculatoarele mari, 1 calculator - mai mulţi oameni;

Al 2 – lea val: PC – urile, 1 calculator – 1 om;

Al 3 – lea val (“post PC era”): “ubiquitous and pervasive computing”, mai multe calculatoare – 1 om.

“Ubiquitous computing” (“ubicomp”) şi “pervasive computing” (UPC):

Formulate în perioada 2001 - 2003;

Este un nou model de calcul, post desktop, în care sistemele de calcul se află în jurul omului, fiind oricînd pregătite să proceseze informaţia;

Spre deosebire de modelul desktop în care un utilizator folosea un sistem de calcul pentru a realiza o sarcină, în UPC omul determină procesarea informaţiei de către mai multe sisteme, în activitatea sa curentă, fără a fi necesar să fie conştient de acest lucru;

Se bazează pe sisteme de calcul de dimensiuni mici, de multe ori nesesizate de om, cu anume sarcini, care comunică între ele şi, eventual, cu un sistem central; se bazează pe SI;

5. Structura unui SI. Unitatea centrală: pentru a decide dacă un procesor este potrivit pentru un SI trebuiesc luate în considerare cîteva

trăsături:

o Numărul pinilor de I/ E: numărul pinilor de I/ E tebuie comparat cu cel al liniilor care trebuiesc

monitorizate/ comandate; unii pini de I/ E pot fi multiplexaţi;

o Numărul interfeţelor;

o Cerinţele de memorie;

o Numărul liniilor de întrerupere;

o Facilităţi de timp – real: registre de captare/ comparare, PWM etc.; acestea pot fi realizate şi fără facilităţi

specifice dar cu preţul timpului;

o Viteza: nu este dată întotdeauna doar de frecvenţa tactului, trebuie cunoscută şi structura internă: de ex.

un microcontroler Atmel la 8 MHz este mai rapid decît un microcontroler PIC la 20 MHz;

o Setul de instrucţiuni: RISC sau CISC; subsetul de instrucţiuni de decizie şi la nivel de bit are importanţă

deosebită;

o Instrumente de dezvoltare: decisive în testare şi depanare; costul lor trebuie luat în considerare.

Memoria

o Situaţia ideală: atunci cînd memoria internă, de date şi de program, este suficientă;

o În caz contrar, este necesară memoria externă;

o Capacitatea de memorie gestionată de un microcontroler este mai mică decît cea gestionată de un

microprocesor, fiind în domeniul nx10 octeţi – nx10 Mo, aplicaţiile de timp real nu cer, în general, multă

memorie.

Intrări/ ieşiri specifice:

o Microcontrolerele includ interfeţe şi module periferice ca urmare ele nu mai apar de sine – stătătoare în

SI;

o SI nu au periferice: harddisk – uri, monitoare, imprimante, mouse etc.

o Intrările/ ieşirile SI sunt specifice:

Citesc informaţia de la senzori analogici sau digitali,

Primesc comenzi din exterior, fie pe linii digitale fie de la comutatoare, minitastaturi,

Afişează informaţia pe led – uri, LCD – uri, afişaje cu 7 segmente,

Comandă actuatori.

Page 3: Subiecte SI Rezolvate de Mine

3

o SI pot comunica pe linii seriale, cu sau fără fir, cu alte SI sau calculatoare de uz general;

o Pot dispune de port serial pentru programare în sistem;

o Pot dispune de port pentru depanare în sistem.

Software de bază:

o Constă în sisteme de operare în timp real (RTOS), necesar pentru SI complexe, de exemplu cele

distribuite;

o Exemple de RTOS: NetBSD, eCOS, Windows CE, OSEK etc.

o SI simple, de exemplu majoritatea din aplicaţiile domestice, nu necesită software de bază.

Software aplicativ:

o Implementează funcţionalitatea cerută;

o Necesită limbajul de programare şi mediul de programare; mediul de programare rulează pe un PC;

o Asigură operaţii ca: monitorizare, procesare, comandă şi control.

6. Structura interna 8051.

7.Organizarea memoriei interne la 8051. Avantaje.

16 linii de adrese dar poate gestiona 128 Ko;

Distinge între spaţiul de memorie de program şi cel de memorie de date, activînd semnale de comandă diferite:

/PSEN pentru memoria de program şi

/RD, /WR pentru memoria de date.

Primii 4 Ko din memoria de program sunt interni; accesul la ei se face cu terminalul /EA = 1;

Sistem de

întreruperi

Întreruperi externe

CPU

Generator

de tact

Logică de

control a

magistralei

Porturi de I/E Port

serial

Contor

0

Contor

1

1280

RAM

4 ko

ROM

Registre cu

funcţiuni

speciale

P0 P1 P2 P3 TxD RxD T0 T1

Page 4: Subiecte SI Rezolvate de Mine

4

Dacă terminalul /EA = 0 sau dacă accesul se face la o locaţie cu adresa peste 0FFFH, va fi adresată memoria externă de

program;

Locaţii cu funcţiuni predeterminate din memoria de program:

0000H pentru RESET,

Acceptarea unei cereri de întrerupere: 0003H pentru INT0, 000BH pentru T0, 0013H pentru INT1, 001BH pentru T1 şi

0023H pentru interfaţa serială.

Memoria de date: internă şi externă.

Memoria de date internă:

128 octeţi, ocupă zona 0000 – 007FH;

Structura memoriei:

00H – 07H: bloc 0,

08H – 0FH: bloc 1,

10H – 17H: bloc 2,

18H – 1FH: bloc 3,

10H – 2FH: Bit RAM,

30H – 7FH: Data RAM.

Zona 00 - 1FH este divizată în 4 blocuri de cîte 8 octeţi, notate cu Blocul 0 – 3;

Există un grup de registre, R0-7 care se suprapune, la un moment dat, peste un singur bloc din cele 4;

Blocul care se suprapune peste registrele R0-7 este selectat de programator prin intermediul rangurilor RS1 şi RS0 din registrul de stare al programului, PSW ("Program Status Word");

8. Ce se intelege prin “Registre cu functiuni speciale”? 2 exemple la 8051.

Microcontrolerul 80C51 conţine un grup de registre interne, cu funcţiuni speciale, SFR (“Special Function Registers”);

Există cîteva tipuri de registre şi anume:

-registre de uz general,

-registre care corespund porturilor,

-registre pentru comanda modulelor periferice şi

-registre pentru transferul datelor cu modulele periferice.

Registrele cu funcţiuni speciale sunt adresabile în mod direct, adresele lor se află în zona 80H – FFH;

Registrele ale căror adrese se termină în 0 sau 8 pot fi adresate şi la nivel de bit.

Tabelul următor prezintă registrele şi adresele lor.

ACC: este registrul acumulator; în cadrul instrucţiunilor este denumit A.

B: este un registru cu rol predeterminat în instrucţiunile de înmulţire şi împărţire; pentru celelalte instrucţiuni, poate fi

utilizat ca registru general.

SP ("Stack Pointer"): este indicatorul de stivă; este incrementat înaintea unei depuneri în stivă prin intermediul

instrucţiunilor CALL sau PUSH; după iniţializare este încărcat cu valoarea 07H deci stiva începe de la adresa 08H; poate

fi încărcat, prin program, cu orice valoare.

PSW ("Program Status Word"): este registrul de stare al programului. Conţine indicatorii de condiţii; rangurile PSW.4 şi

PSW.3 denumite şi RS1, respectiv RS0 permit selectarea blocului 0 – 3 din memoria internă RAM care se suprapune peste

grupul R0 – 7.

Page 5: Subiecte SI Rezolvate de Mine

5

9. Modurile de lucru ale contorului 8051. Există 4 moduri de lucru pentru TIMER 0 şi 1, selectabile prin rangurile corespunzătoare M1 şi M0.

Modul 0:

TIMER 0 şi 1 sunt configurate ca numărătoare pe 13 biţi; TL0 şi TL1 sunt numărătoare alcătuite din 5

ranguri, cele mai puţin semnificative iar TH0 şi TH1 sunt numărătoare pe 8 biţi; indicatorii de depăşire

TF0 şi TF1 sunt poziţionaţi atunci cînd numărătorul corespunzător conţine valoarea maximă şi este

incrementat, anulîndu-se astfel conţinutul său;

Semnalul care apare la ieşirea de depăşire a lui TIMER 1 este sursă pentru tactul serial.

Modul 1:

Este identic cu modul 0, cu excepţia faptului că numărătoarele sunt pe 16 biţi.

Modul 2:

TIMER 0 şi 1 sunt configurate ca numărătoare pe 8 biţi cu auto-încărcare;

TL0 şi TL1 sunt folosite ca numărătoare iar TH0 şi TH1 sunt folosite ca registre pentru păstrarea

constantei care se va încărca;

Semnalul de depăşire generat de TL0 sau TL1 va provoca preîncărcarea acestora şi numărarea va

continua de la această valoare;

TH0 şi TH1 sunt încărcate prin program; indicatorii TF0 şi TF1 sunt poziţionaţi de semnalele de depăşire

de la numărătoarele TL0, respectiv TL1;

Semnalul de depăşire generat de numărătorul TL1 este sursă pentru tactul serial;

Figura următoare prezintă pe TIMER 0 şi 1 în modul 2:

CLOCK TF0 TL0

5 biţi

TH0

8 biţi

CLOCK TF1 TL1

5 biţi

TH1

8 biţi

Tact serial

CLOCK TF0 TL0

8 biţi

TH0

8 biţi

CLOCK TF1 TL1

8 biţi

TH1

8 biţi

Tact serial

Page 6: Subiecte SI Rezolvate de Mine

6

Modul 3:

Modul poate fi cerut doar pentru TIMER 0; dacă i se cere lui TIMER 1, acesta nu va număra (se obţine

acelaşi efect ca şi cînd TR1 = 0);

TIMER 0 în modul 3 lucrează ca două numărătoare independente pe 8 biţi; TL0 foloseşte rangurile de

control ale lui TIMER 0, adică C/ /T, GATE, TR0 şi /INT0 şi comandă pe TF0 iar TH0 foloseşte pe TR1

şi comandă pe TF1;

Modul este util în aplicaţii în care se cere un numărător suplimentar; TIMER 0 furnizează 2 contoare pe 8

biţi iar TIMER 1 poate fi folosit în modurile 0, 1 sau 2 fără a putea, însă, să poziţioneze pe TF1 deci nu va

putea să genereze cerere de întrerupere.

10. Modurile de lucru ale interfetei seriale 8051 Interfaţa serie poate lucra în modurile:

I/ E (intrare/ ieşire) extins sau

UART;

În modul I/ E extins, transferul se face sincron cu tactul microcontrolerului;

În modul UART se pot transfera caractere pe 10 sau 11 biţi; caracterul pe 11 biţi este alcătuit dintr-un bit

de START, 8 biţi de date, un al 9-lea bit programabil şi bitul de STOP;

Modul 0:

Este modul numit şi I/ E extins în care se transferă date pe 8 biţi, sincronizate cu tactul

microcontrolerului;

Terminalul TxD este folosit doar pentru a genera tactul iar terminalul RxD este folosit pentru a transfera

date în ambele sensuri;

CLOCK TL0 TF0

TH0

CLOCK TL1 TF1

TH1 Tact serial

TR1 fOSC / 12

TH0 TF1

TL0 TF0 CLOCK

Page 7: Subiecte SI Rezolvate de Mine

7

Rata de transfer este: R = f OSC/ 12.

Modul 1:

Este un mod UART în care se transferă caractere pe 10 biţi: 1 bit de START, 8 biţi de date, primul fiind

cel mai puţin semnificativ şi 1 bit de STOP;

La recepţie, bitul de STOP se încarcă în RB8;

Rata de transfer este determinată de frecvenţa semnalului de la ieşirea de depăşire a lui TIMER 1, fTIM;

Dacă TIMER 1 lucrează în modul 0 sau 1 atunci rata de transfer este:

R = 2SMOD x fTIM/ 32;

Dacă TIMER 1 lucrează în modul 2 atunci rata de transfer este:

R = 2SMOD x fosc/ 32 x 12 x (256 - (TH1)),

(TH1) este constanta de preîncărcare;

TIMER 1 poate lucra ca şi contor sau ca temporizator şi este necesară dezactivarea întreruperii generată

de TF1;

Transmisia se realizează pe terminalul TxD şi este anclanşată de o scriere în tamponul SBUF iar recepţia

se realizează pe terminalul RxD şi este anclanşată la apariţia bitului de START;

Data se preia din tamponul SBUF;

Încărcarea datei în SBUF, a bitului de STOP în RB8 şi activarea indicatorului RI se realizează doar dacă

în momentul respectiv sunt îndeplinite condiţiile:

RI = 0 şi

SM2 = 0 sau SM2 = 1 şi bitul STOP = 1.

Dacă vreuna din aceste condiţii nu este îndeplinită atunci data este ignorată şi SBUF, RB8 şi RI rămîn

nemodificate

Modul 2

Mod UART cu 11 biţi/ caracter: 1 bit de START, 8 biţi de date, 1 bit programabil şi 1 bit de STOP;

La transmisie, bitul al 9-lea este TB8 şi poate fi programat iar la recepţie, bitul al 9-lea este încărcat în

RB8;

Rata de transfer este:

R = 2SMOD x fOSC/ 64;

Transmisia: bit de START, 8 biţi de date, bit 9 (TB8, care poate fi bitul de paritate dacă în prealabil acesta

a fost încărcat în TB8), bit de STOP şi activare a indicatorului TI;

La recepţie, după preluarea bitului de START şi a biţilor de date, este preluat al 9-lea bit, care se încarcă

în RB8, apoi este preluat bitul de STOP şi se activează indicatorul RI; preluarea datei, încărcarea celui de-

al 9-lea bit în RB8 şi activarea indicatorului RI au loc dacă sunt îndeplinite, la momentul respectiv,

condiţiile:

RI = 0 şi

SM2 = 0 sau SM2 = 1 şi bitul al 9-lea = 1;

Dacă vreuna din aceste condiţii nu este îndeplinită atunci data este ignorată şi SBUF, RB8 şi RI rămîn

nemodificate.

Modul 3

Mod UART cu 11 biţi/ caracter care diferă de modul 2 doar prin rata de transfer care aici depinde de

fTIM; astfel:

R = 2SMOD x fTIM/ 32 dacă TIMER 1 lucrează în modul 0 sau 1 şi

R = 2SMOD x fosc/ 32 x 12 x (256 - (TH1)) dacă TIMER 1 lucrează în modul 2.

Ratele de transfer uzuale şi obţinerea lor din TIMER 1:

Page 8: Subiecte SI Rezolvate de Mine

8

11. Descrieţi funcţionarea sistemului multimicrocontroler bazat pe interfaţa serială a

microcontrolerului 8051.

Facilitatea de comunicare în sistem multiprocesor: se bazează pe existenţa celui de-al 9-lea bit de date în modurile 2 sau 3;

Dacă rangul SM2 = 1 şi bitul al 9-lea este 1 atunci data este preluată iar dacă bitul al 9-lea este 0 atunci data este neglijată;

Fie un sistem multiprocesor, cu un microcontroler master şi mai multe microcontrolere slave;

Datele vor fi transmise doar de la master la slave.

În faza iniţială, toate microcontrolerele slave au SM2 = 1 şi aşteaptă să fie selectate;

Microcontrolerul master emite adresa microcontrolerului slave selectat; adresa diferă de date prin aceea că are rangul al 9-

lea, TB8, egal cu 1;

Toate microcontrolerele slave vor prelua adresa, îşi vor genera întreruperi şi în rutinele de tratare vor verifica propria

adresă cu cea sosită de la microcontrolerul master;

Microcontrolerul slave selectat va modifica SM2 deci doar la acesta va exista SM2 = 0 iar la toate celelalte

microcontrolere slave va exista SM2 = 1. În continuare, microcontrolerul master emite datele, cu TB8 = 0;

Doar acel microcontroler slave care va avea SM2 = 0 va prelua datele iar toate celelalte microcontrolere slave le vor

ignora întrucît la acestea SM2 = 1.

După ce microcontrolerul master a emis toate datele, el va emite un cod de final, predeterminat, care va avea ca efect

setarea lui SM2 de către microcontrolerul slave care a fost selectat; în acest fel s-a revenit în starea iniţială în care toate

microcontrolerele slave au SM2 = 1 şi aşteaptă să fie selectate.

12. Sistemul de intreruperi al 8051. 5 surse pentru întreruperi:

a) 2 întreruperi externe generate la intrările /INT0 şi /INT1 şi

b) 3 întreruperi interne: 2 de la circuitele contoare/ temporizatoare şi una de la întreruperea serială.

TxD

80C51

MASTER

RxD

80C51

SLAVE

RxD

80C51

SLAVE

RxD

80C51

SLAVE . . .

. . .

Page 9: Subiecte SI Rezolvate de Mine

9

Cererile de întrerupere setează indicatori care sunt ranguri din registrele TCON şi SCON şi care generează, de

fapt, întreruperile;

Astfel întreruperile externe setează indicatorii IE0 (TCON.1) şi IE1 (TCON.3), întreruperile de la contoare

setează rangurile TF0 (TCON.5) şi TF1 (TCON.7) iar întreruperea serială setează fie rangul RI (SCON.0) fie

rangul TI (SCON.1);

RI şi TI sunt intrări într-o poartă SAU a cărei ieşire este cererea de întrerupere de la interfaţa serială; pot fi

controlaţi şi prin program.

Dacă se încarcă 1 în unul din aceşti indicatori, efectul va fi acelaşi ca şi cel produs de cererea corespunzătoare

hardware.

Dacă există o cerere hardware în aşteptare, care nu a fost încă tratată, ea poate fi anulată prin ştergerea

indicatorului corespunzător.

Întreruperile sunt controlate de 2 registre:

IE ("Interrupt Register") şi

IP ("Priority Register");

Rolul registrului IE este acela de a valida/ invalida întreruperile; pentru a valida o întrerupere, bitul corespunzător

trebuie să fie 1 iar pentru a o dezactiva, bitul corespunzător trebuie să fie 0; în plus, există un rang pentru

dezactivarea generală a întreruperilor;

Rolul registrului IP este acela de a aloca priorităţi;

Există 2 nivele de prioritate: scăzut şi ridicat; fiecărei surse i se poate aloca , în mod independent, oricare nivel de

prioritate;

Fiecărei întreruperi îi corespunde un rang: 1 în rangul respectiv înseamnă prioritate ridicată iar 0 în rangul

respectiv înseamnă prioritate scăzută;

Dacă apar simultan 2 cereri de întrerupere, de priorităţi diferite, va fi tratată cererea de prioritate mare;

Dacă apar simultan 2 sau mai multe cereri de aceeaşi prioritate, microcontrolerul le va lua în considerare într-o

ordine prestabilită care este: IE0, TF0, IE1, TF1 şi, ultima, RI + TI;

Rutina de tratare a unei întreruperi de prioritate scăzută poate fi întreruptă de o cerere de prioritate ridicată dar nu

şi invers; rutina de tratare a unei întreruperi nu poate fi întreruptă de o cerere de aceeaşi prioritate.

Structura registrului IE:

7 0

EA - - ES ET1 EX1 ET0 EX0

IE.0: EX0: bit de control pentru întreruperea externă 0.

IE.1: ET0: bit de control pentru contorul/ temporizatorul 0.

IE.2: EX1: bit de control pentru întreruperea externă 1.

IE.3: ET1: bit de control pentru contorul/ temporizatorul 1.

IE.4: ES: bit de control pentru întreruperea serială.

IE.7: EA: bit de control general: dacă este 0 atunci o întrerupere nu poate fi tratată; dacă este 1, o întrerupere

poate fi tratată dacă bitul de control corespunzător este 1.

Structura registrului IP:

7 0

- - - PS PT1 PX1 PT0 PX0

IP.0: PX0: rang de prioritate pentru întreruperea externă 0.

IP.1: PT0: rang de prioritate pentru întreruperea de la contorul/ temporizatorul 0.

IP.2: PX1: rang de prioritate prntru întreruperea externă 1.

Page 10: Subiecte SI Rezolvate de Mine

10

IP.3: PT1: rang de prioritate pentru întreruperea de la contorul/ temporizatorul 1.

IP.4: PS: rang de prioritate pentru întreruperea serială.

Întreruperile sunt citite în timpul lui S5P2 al fiecărui ciclu maşină;

Apoi are loc o testare a ceea ce s-a citit în timpul următorului ciclu maşină;

Dacă vreunul din indicatorii de întrerupere a fost găsit activ şi dacă întreruperea respectivă este validată atunci

sistemul de întreruperi va genera o instrucţiune LCALL ("Long CALL") ADR, unde ADR depinde de tipul

întreruperii, conform tab.:

Întreruperile sunt citite în timpul lui S5P2 al fiecărui ciclu maşină;

Apoi are loc o testare a ceea ce s-a citit în timpul următorului ciclu maşină;

Dacă vreunul din indicatorii de întrerupere a fost găsit activ şi dacă întreruperea respectivă este validată atunci

sistemul de întreruperi va genera o instrucţiune LCALL ("Long CALL") ADR, unde ADR depinde de tipul

întreruperii, conform tab.:

Tip de întrerupere Adresă

IE0 0003H

TF0 000BH

IE1 0013H

TF1 001BH

RI + TI 0023H

Instrucţiunea LCALL nu se va genera în una din următoarele situaţii:

1. o întrerupere de prioritate egală sau mai mare este deja în tratare;

2. ciclul curent de testare nu este ultimul ciclu al instrucţiunii curente sau

3. instrucţiunea curentă este RETI sau o instrucţiune ce scrie în registrele IE sau IP.

Condiţia 2. asigură luarea în considerare a unei cereri de întrerupere doar la sfirşitul unei instrucţiuni iar condiţia

3. asigură luarea în considerare a unei cereri de întrerupere doar după ce se execută încă o instrucţiune după RETI

sau după cea care scrie în registrele IE sau IP;

Dacă există o singură sursă de întrerupere atunci timpul de răspuns este între 3 şi 8 cicluri maşină.

Instrucţiunea LCALL va depune conţinutul lui PC în stivă şi va încărca PC cu adresa de salt;

În unele cazuri, are loc ştergerea, prin hardware, a indicatorului ce corespunde întreruperii tratate: indicatorii TF0,

TF1 şi IE0, IE1 dar numai dacă întreruperea externă este activă pe front;

Indicatorul ce corespunde întreruperii seriale trebuie sa fie şters doar prin program.

Execuţia rutinei de tratare a cererii de întrerupere se încheie la întîlnirea instrucţiunii RETI; încarcă în PC adresa

de revenire şi iniţializează sistemul de întreruperi; rutina se poate încheia şi cu instrucţiunea RET dar nu se va

iniţializa sistemul de întreruperi;

Întreruperile externe pot fi programate, prin rangurile IT0, respectiv IT1 din registrul TCON, să fie active pe nivel

sau pe front;

O tranziţie 1 → 0 pe una din intrările /INT0 sau /INT1 va poziţiona indicatorul IE0 sau IE1, dacă întreruperea este

validată și dacă cererea are o durată minimă de 12 perioade de tact pe nivel 1 şi 12 perioade de tact pe nivel 0;

Această condiţie rezultă din faptul că terminalele /INT0 şi /INT1 sunt citite doar o singură dată în fiecare ciclu

maşină;

Page 11: Subiecte SI Rezolvate de Mine

11

Dacă cererea externă este activă pe nivel, ea trebuie să rămînă activă pînă la începerea execuţiei rutinei de tratare,

după care trebuie dezactivată înainte de încheierea rutinei pentru a evita o nouă tratare a ei.

13. Modurile de lucru cu consum redus ale 8051. 2 moduri: Idle şi Power – Down;

Utile în aplicaţii în care consumul este un factor critic;

Instalarea lor se face prin program, acţionînd asupra a cîte unui rang din registrul PCON ("Power Control

Register"):

7 0

PCON.0: IDL: 1 în acest rang instalează modul Idle.

PCON.1: PD: 1 în acest rang instalează modul Power - Down.

PCON.2, 3: GF0, GF1: ranguri pentru uz general.

PCON.7: SMOD: utilizat la interfaţa serială.

Modul Idle:

Microcontrolerul intră în acest mod după activarea, de către o instrucţiune, a rangului IDL;

Oscilatorul, interfaţa serială, contoarele/ temporizatoarele şi sistemul de întreruperi continuă să

funcţioneze dar tactul nu mai ajunge la CPU. Întregul CPU îşi păstrează starea;

Ieşirea: prin întrerupere validată sau RST;

Modul Power – Down:

Este instalat de o instrucţiune ce activează rangul PD;

Oscilatorul se opreşte, ca urmare starea întregului microcontroler rămîne nemodificată (microcontrolerul

"îngheaţă");

Singura ieşire din acest mod este prin activarea intrării RST;

În acest mod Vcc poate fi redus la 2 V; trebuie însă avut grijă ca reducerea să se facă după ce

microcontrolerul a intrat în modul Power - Down iar activarea lui RST care provoacă ieşirea din modul

Power - Down să se facă după ce Vcc a revenit la valoarea de lucru.

14. Porturile 8051.

Este resursa direct utilizată în aplicaţiile de timp real, de monitorizare, comandă şi control;

Microcontrolerul 8051 dispune de 4 porturi bidirectionale, pe 8 biţi, notate cu P0, P1, P2 şi P3;

Fiecare port are un circuit de intrare, un registru intern notat tot cu P0, P1, P2 respectiv P3 şi un etaj de ieşire;

Porturile sunt de uz general, fiecare rang poate fi programat independent ca intrare sau ieşire şi, în plus, porturile

P0, P2 şi P3 au şi funcţiuni alternative;

Astfel în ciclurile în care se face acces la memoria externă, liniile portului P0 constituie o magistrală multiplexată

de adrese/ date, AD0 - 7, între jumătatea mai puţin semnificativă din magistrala de adrese şi cea de date iar liniile

portului P2 vor transfera jumătatea mai semnificativă a magistralei de adrese;

Atunci cînd se aduce un cod de instrucţiune din memoria de program externă, liniile porturilor P0 şi P2 vor fi

comandate de PC iar atunci cînd se transferă o dată cu memoria de date externă liniile porturilor P0 şi P2 vor fi

comandate de registrul DPTR;

Dacă adresa datei externe este pe 8 biţi, atunci adresa se obţine pe liniile portului P0 care va fi comandat de registrul

R0 sau R1;

Rangurile portului P3 au funcţiuni specifice individuale conform tab.:

SMOD - - - GF1 GF0 PD IDL

Page 12: Subiecte SI Rezolvate de Mine

12

Rang Funcţia specifică

P3.0 RxD: intrare serială

P3.1 TxD: ieşire serială

P3.2 /INT0: întrerupere externă 0

P3.3 /INT1: întrerupere externă 1

P3.4 T0: intrare de numărare pentru contorul 0

P3.5 T1: intrare de numărare pentru contorul 1

P3.6 /WR: semnal de comandă pentru scrierea în memoria de date

externă

P3.7 /RD: semnal de comandă pentru citirea din memoria de date

externă

15. Ce se intelege prin facilitatea de captare/comparare? Dati un exemplu. Microcontrolerele includ periferie internă şi această caracteristică, împreună cu memoria internă, le conferă denumirea

de “microcalculatoare pe un singur cip”. Există periferie tip conţinută de majoritatea microcontrolerelor. Astfel, toate

conţin contoare/ temporizatoare. Acestea pot fie să numere evenimente externe fie să măsoare timpul. Unele

microcontrolere conţin un contor de tip “Watchdog” care poate să scoată microcontrolerul din zone de program în care

acesta a intrat în mod accidental şi din care nu poate ieşi altfel. Unele microcontrolere conţin contoare cu facilităţile de

captare şi comparare. Facilitatea de captare permite captarea conţinutului contorului şi memorarea sa într – un registru

intern, la comanda unui semnal extern. Facilitatea este utilă la măsurarea cu exactitate a timpului, a duratei şi perioadei

unor semnale etc. Facilitatea de comparare permite modificarea unor ieşiri ale microcontrolerului atunci când contorul a

ajuns la o valoare preprogramată. În funcţie de modul de lucru ales, modificarea ieşirii se poate face în mai multe feluri.

Facilitatea este utilă pentru luarea de decizii, generarea de comenzi externe etc

16. Ce se intelege prin PWM? Dati un exemplu de pwm. Generează ieşiri modulate în durată;

Facilitate utilă pentru comanda motoarelor de curent continuu;

Implementat cu un contor/ temporizator pe 32 biţi cu un divizor intern de 32 biţi;

Facilitatea PWM poate fi dezactivată;

Perioada şi durata pot fi programate;

Se poate genera cerere de întrerupere la generarea duratei prescrise;

Facilitate de control individual al fronturilor ridicător şi coborîtor; utilă pentru comanda motoarelor de curent

continuu multi – fază care cer 3 impulsuri cu posibilitate de poziţionare distinctă a fronturilor ridicător şi coborător

ale fiecăruia;

Posibilitate de a genera:

1. Ieşire activă la 1 la fiecare început de ciclu;

2. Ieşire activă la 1 sau la 0 în timpul ciclului;

Page 13: Subiecte SI Rezolvate de Mine

13

Registre care stabilesc durata semnalului activ şi poziţia sa;

Un exemplu de modul PWM:

17. Desenati nucleul arhitecturii HCS12.

Magistrală internă

Divizor deprescalare

fOSC / 2

Numărător

Comparator

PWM0

Separator

PWM0

Comparator

PWM1

Separator

PWM1

Page 14: Subiecte SI Rezolvate de Mine

14

Este o arhitectură a microcontrolerelor Motorola pe 16 biţi;

Exemplu: MC9S12DJ256;

Include unitate centrală de tip HCS 12, compatibilă cu HC 12 şi 11;

Include interfaţă pentru magistrală externă multiplexată, modul de breackpoint, modul pentru depanare;

Include modul de tact complex: oscilator cu consum mic, PLL, monitor de tact, COP watchdog;

Porturi pe 8 şi 4 biţi, cu facilităţi de întrerupere;

Contor pe 16 biţi cu 8 canale de captare/ comparare; contor acumulator (2 pe 8 biţi sau 1 pe 16 biţi);

8 canale PWM;

2 interfeţe seriale asincrone şi 3 interfeţe seriale sincrone;

18. Descrieti, pe scurt, modurile de operare ale uc HCS12. Moduri de operare: sunt stabilite la frontul ridicător al lui /RESET care va înscrie valorile de pe liniile BKGD,

PE6 şi PE5 în rangurile MODC, MODB şi MODA; porturile A şi B au ca funcţiuni alternative magistralele de

adrese/ date;

Special Single Chip Mode: nu foloseşte magistrale externe;

Emulation Extended Narrow Mode: foloseşte magistrală externă de date pe 8 biţi; pentru sisteme mai

ieftine;

Emulation Expanded Wide Mode: magistrale externe de 16 biţi;

Normal Single Chip Mode: fără magistrale externe;

Normal Expanded Narrow Mode: magistrală externă de date de 8 biţi pentru sisteme mai puţin

performante;

Normal Expanded Wide Mode: magistrală externă de date de 16 biţi; ranguri ale portului E sunt

configurate ca semnale de comandă;

Special Test Mode: mod de test care permite vizualizarea unor semnale de comandă interne;

Peripheral Mode: mod de testare, accesibil doar de producător; este un mod special; ieşirea din el se face

modificînd valorile pinilor BKGD, PE6 şi PE% şi activînd semnalul /RESET; direcţia magistralelor de

date şi adrese este spre circuit iar sistemul extern, de testare, este cel ce generează semnalele de comandă,

plasează informaţia pe magistrale şi iniţiază toate ciclurile;

Vizibilitate internă este permisă şi în modurile Expanded Wide şi Emulation Narrow; este asigurată prin

setarea rangului IVID din registrul MODE; nu este permisă în modurile Single Chip, Peripheral şi Normal

Expanded Narrow;

19. Descrieti modulul de Breakpoint din uc HCS12. a. Asigură, prin hardware, puncte de breakpoint, comparînd valori curente de adrese şi date cu conţinuturile unor

registre interne;

b. În caz de egalitate CPU este plasat în modul BDM (Background Debug Mode) sau se generează o întrerupere

software (SWI);

c. 2 moduri de operare:

i. Dual Address Mode: o potrivire cu una din 2 adrese va trece CPU în modul BDM sau va genera SWI;

ii. Full Breakpoint Mode: o potrivire cu adresa şi data va trece CPU în modul BDM sau va genera SWI;

d. 2 tipuri de breakpoint: forced şi tagged; primul asigură reacţie după execuţia instrucţiunii de la adresa specificată

iar al doilea asigură reacţie înainte de execuţia instrucţiunii de la adresa specificată;

Page 15: Subiecte SI Rezolvate de Mine

15

e. Oprirea se poate realiza pe o adresă, pe o adresă multiplu de 256 sau pe o adresă multiplu de 16 K;

f. Oprirea se poate realiza pe o dată de 8 sau 16 biţi, pe octet superior sau inferior, la citire sau scriere;

g. Blocul este controlat prin SFR, de ex. Breakpoint Control Register 0:

Page 16: Subiecte SI Rezolvate de Mine

16

20. Memoria interna flash a uc HCS12. a. Capacitate de 256 Ko, organizată ca 4 blocuri de cîte 64 Ko;

b. Fiecare bloc poate fi şters, programat sau citit;

c. Tensiunea mare necesară ştergerii este generată intern;

d. Facilitate de generare de întrerupere la încheierea comenzii sau la golirea tamponului de date;

e. Memoria este securizată;

Page 17: Subiecte SI Rezolvate de Mine

17

f. Controlată de mai multe SFR – uri; ex.: FCMD (Flash Command Register):

21. Convertorul analog digital al uc HCS12. a. 8 canale de intrare,

b. Rezoluţie de 8/ 10 biţi;

c. Timp de eşantionare programabil;

d. Anclanşare externă şi prin program; anclanşarea externă poate fi activată de front (crescător sau

descrescător sau de nivel, low sau high); anclanşarea externă poate fi invalidată;

e. Generare de întrerupere la încheierea conversiei;

f. Conversie singulară sau multiplă, pe unul sau mai multe canale; numărul de conversii poate fi programat

între 1 şi 8;

g. Moduri de operare:

i. Stop: sistemul se opreşte, orice conversie este abandonată;

ii. Wait: conversia se opreşte sau este continuată în funcţie de starea unui rang din un SFR;

iii. Freeze: convertorul va continua conversia, va termina conversia începută după care se va opri sau

se va opri imediat, în funcţie de starea a 2 ranguri din un SFR;

22. Modulul contor/temporizator al uc HCS12. a. Circuitul de bază este un contor pe 16 biţi, programabil; tactul trece printr–un divizor cu prescalare;

b. 8 canale de captare/ comparare;

c. 4 Pulse Accumulators pe cîte 8 biţi configurabili şi ca 2 Pulse Accumulators pe cîte 16 biţi;

d. Funcţionarea este controlată de SFR – uri; ex.: TIOS (Timer Input Capture/ Output Compare Select

Register)

Page 18: Subiecte SI Rezolvate de Mine

18

23. Interfata SCI al HCS12. a. Operare full duplex;

b. Format pe 8 sau 9 biţi, plus biţii de cadrare şi bitul de paritate;

c. Transmiţătorul şi receptorul pot fi validaţi separat;

d. Generare de întrerupere la: transmitere încheiată, preluare caracter, eroare de ritm, de cadrare, de paritate,

zgomote;

e. Formatul datelor:

Schema bloc

Page 19: Subiecte SI Rezolvate de Mine

19

24. Interfata I2C al HCS12. 1. Interfaţă serială sincronă, multimaster;

2. Rata de transfer 100 kbps;

3. 2 linii: SDA şi SCL; numărul de terminale care se leagă la linii este limitat doar de valoarea maximă a capacităţii

liniilor (400 pF);

4. 256 valori pentru frecvenţa tactului;

5. Posibilitate de a genera cerere de întrerupere la transferul fiecărui octet de date;

6. Schema bloc:

Page 20: Subiecte SI Rezolvate de Mine

20

25. Modurile MSCAN ale HCS12. Compatibil cu protocolul CAN 2.0 A şi B;

Comunicări seriale în industria automotive, respectînd cerinţe specifice: procesare în timp real, operare sigură în

mediu cu radiaţii electromagnetice, lăţime de bandă suficientă, cost scăzut;

Rată de transfer programabilă, pînă la 1 Mbps;

Filtru intern pentru diferite configuraţii;

Mod loop back pentru autotestare;

Organizarea registrelor:

Page 21: Subiecte SI Rezolvate de Mine

21

Schema Bloc

26. Modurile PWM ale HCS12.

a. 8 canale independente, cu posibilitatea de a programa perioada şi durata; factorul de umplere poate fi

programat în domeniul 0 – 100%;

b. Numărător distinct, pe 8 biţi, pentru fiecare canal PWM;

c. Fiecare canal poate fi activat sau dezactivat;

d. Polaritatea ieşirii poate fi programată;

e. 4 surse de tact, acoperind un domeniu larg de frecvenţe;

f. Oprire în caz de avarie;

g. Există 8 terminale dedicate, PWM0 – PWM7, ultimul fiind şi intrare pentru facilitatea de oprire la avarie;

h. Ieşirea unui canal poate fi aliniată la stînga sau centrată:

Page 22: Subiecte SI Rezolvate de Mine

22

Schema bloc

Page 23: Subiecte SI Rezolvate de Mine

23

27. Porturile MC9S12DJ256. a. 10 porturi, avînd şi funcţiuni alternative;

b. Caracteristici minime ale unei linii de port:

i. Intrare sau ieşire;

ii. Ieşire la 5 V;

iii. Intrare la 5 V sau analogică;

iv. Intrare cu pull – up sau pull – down (selectabil prin un rang din un SFR);

c. Caracteristici opţionale:

i. Drenă deschisă pentru ŞI cablat;

ii. Intrări cu filtrare a impulsurilor scurte;

d. Multiple SFR – uri:

i. Pentru cele 10 porturi;

ii. Pentru direcţie;

iii. Pentru a selecta pull – up sau pull – down la intrări;

iv. Pentru a selecta una din două puteri ale ieşirilor;

v. Pentru validare întreruperi şi front activ;

vi. Pentru operaţia Şi cablat;

28. Exceptiile MC9S12DJ256.

Fiecare excepţie are un vector pe 16 biţi care duce la adresa de început a rutinei de tratare; tabela

vectorilor se află în 128 octeţi din zona superioară a spaţiului standard de 64 Ko; tabelul următor arată

tabela vectorilor precum şi prioritatea excepţiilor (de sus în jos):

Există mai multe tipuri de întreruperi:

Nemascabile: TRAP, SWI şi pinul /XIRQ; cererea /XIRQ este mascată, după Reset, dar după ce

software – ul anulează bitul X, cererea devine nemascabilă pînă la un nou Reset;

Mascabile: pinul /IRQ, cereri de la periferia internă;

29. Limbajul de asamblare al microcontrolerului 8051. avantaje, dezavantaje Microcontrolerul 80C51 posedă un set de instrucţiuni orientat pe aplicaţii de monitorizare şi control;

Există instrucţiuni la nivel de bit care permit comanda individuală a rangurilor din registre şi din porturi, fără

afectarea restului de ranguri;

Page 24: Subiecte SI Rezolvate de Mine

24

Pentru accesul rapid în cadrul unor structuri de date de dimensiuni mici, există mai multe moduri de adresare şi

mai multe tipuri de instrucţiuni de transfer;

Moduri de adresare

Adresarea directă: operandul este specificat printr-o adresă pe 8 biţi în cadrul instrucţiunii; se foloseşte

doar pentru adresarea memoriei RAM interne şi a registrelor cu funcţiuni speciale; exemplu: MOV

A,09H;

Adresarea indirectă: în cadrul instrucţiunii se specifică un registru care conţine adresa operandului;

exemplu: ADD A,@Ri;

Adresarea de registru: este folosită pentru adresarea unui operand aflat în unul din registrele R0 - R7;

cod eficient;

Adresarea implicită: este folosită de instrucţiuni care au un operand într-un registru predeterminat, de

exemplu acumulatorul sau registrul DPTR; în aceste cazuri nu mai este necesară specificarea operandului;

exemplu: ADD A,Rn;

Adresarea imediată: în cadrul instrucţiunii, după cod urmează o constantă; exemplu: ADD A,#64 sau

ADD A,#64H;

Adresarea indexată: poate fi folosită doar pentru citirea memoriei de program; este foarte utilă la citirea

tabelelor de căutare din memoria de program; un registru de bază de 16 biţi, DPTR sau PC, indică baza

tabelei iar acumulatorul indică intrarea în tabelă; exemplu: MOVC A,@A + DPTR; adresarea indexată se

foloseşte şi la instrucţiunile de salt cu selecţie: adresa destinaţie a unei instrucţiuni de salt se obţine

adunînd conţinutul registrului de bază cu cel al acumulatorului; exemplu: JMP @A + DPTR.

30. 2 moduri de adresare 8051 care ofera maxim de flexibilitate. Moduri de adresare

a. Adresarea directă: operandul este specificat printr-o adresă pe 8 biţi în cadrul instrucţiunii; se foloseşte

doar pentru adresarea memoriei RAM interne şi a registrelor cu funcţiuni speciale; exemplu: MOV A,09H;

b. Adresarea indirectă: în cadrul instrucţiunii se specifică un registru care conţine adresa operandului;

exemplu: ADD A,@Ri;

c. Adresarea de registru: este folosită pentru adresarea unui operand aflat în unul din registrele R0 - R7;

cod eficient;

d. Adresarea implicită: este folosită de instrucţiuni care au un operand într-un registru predeterminat, de

exemplu acumulatorul sau registrul DPTR; în aceste cazuri nu mai este necesară specificarea operandului;

exemplu: ADD A,Rn;

e. Adresarea imediată: în cadrul instrucţiunii, după cod urmează o constantă; exemplu: ADD A,#64 sau

ADD A,#64H;

f. Adresarea indexată: poate fi folosită doar pentru citirea memoriei de program; este foarte utilă la citirea

tabelelor de căutare din memoria de program; un registru de bază de 16 biţi, DPTR sau PC, indică baza

tabelei iar acumulatorul indică intrarea în tabelă; exemplu: MOVC A,@A + DPTR; adresarea indexată se

foloseşte şi la instrucţiunile de salt cu selecţie: adresa destinaţie a unei instrucţiuni de salt se obţine

adunînd conţinutul registrului de bază cu cel al acumulatorului; exemplu: JMP @A + DPTR.

31. Prezentati 3 exemple de instructiuni ale uc 8051 de tipuri diferite si descrieti

semnificatiile lor. 1.Instrucţiuni aritmetice

a. Instrucţiuni cu 2 operanzi: ADD, ADDC, SUBB, MUL şi DIV; utilizează registrul A;

b. Instrucţiuni cu 1 operand: INC, DEC;

c. Instrucţiune cu operand implicit: DAA;

Page 25: Subiecte SI Rezolvate de Mine

25

d. Utilizează mai multe moduri de adresare:

i. ADD A,10H - este adresare directă,

ii. ADD A,#80 - este adresare implicită (operandul este în zecimal),

iii. ADD A,R0 - este adresare de registru,

iv. ADD A,@R1 - este adresare indirectă.

2. Instrucţiuni logice:

Instrucţiuni care implementează funcţiile logice de bază: CPL, ANL, ORL şi XRL;

Operanzii se găsesc în registrul A sau pot fi furnizaţi prin adresare directă, ceea ce înseamnă că se referă

la memoria RAM internă şi la SFR, prin adresare imediată sau prin adresare indirectă;

Instrucţiuni de rotire a acumulatorului: RR, RRC, RL şi RLC;

Instrucţiune de interschimbare a celor 2 jumătăţi ale acumulatorului: SWAP; o aplicaţie este conversia

unui număr din binar în BCD; ex.:

MOV B,#10

DIV AB

SWAP A

ADD A,B.

Instrucţiunea de divizare oferă cîtul în A şi restul în B; cîtul este cifra zecilor, ca urmare trebuie să ajungă în

jumătatea mai semnificativă a lui A; operaţia este realizată de SWAP iar instrucţiunea de adunare duce în jumătatea mai

puţin semnificativă a lui A, cifra unităţilor; rezultatul, adică numărul convertit în BCD, se va afla în registrul A;

3. Instrucţiuni de lucru cu subrutinele

Instrucţiuni de apel de subrutină:

ACALL, la care destinaţia trebuie să se afle în aceeaşi pagină ca şi instrucţiunea de apel (2

octeţi);

LCALL la care destinaţia poate fi oriunde în spaţiul de memorie extern de program (3 octeţi);

Destinaţiile instrucţiunilor de apel de subrutină pot fi date de programator sub formă simbolică,

de etichetă

Instrucţiunide revenire din subrutină: RET şi RETI;

Instrucţiunea RETI este recomandată la încheierea subrutinelor de tratare a cererilor de întrerupere

întrucît, în plus faţă de instrucţiunea RET, reface starea sistemului de întreruperi la ieşirea din rutina de

tratare;

4.Instrucţiunea NOP

Este o instrucţiune fără efect;

În mod uzual este folosită pentru întîrzieri sau pentru a înlocui instrucţiuni care trebuiesc eliminate din

program;

Page 26: Subiecte SI Rezolvate de Mine

26

32. 2 moduri de adresare ale MC9S12DJ256.

Fiecare mod de adresare, cu excepţia modului inerent, generează o adresă efectivă pe 16 biţi; este adresa

operandului instrucţiunii;

Adresarea inerentă: operandul este fie inexistent fie conţinut în registrele UC; se mai numeşte şi adresare

implicită;

Ex.: clra

Adresare imediată: operandul este codificat în instrucţiune; simbolul #;

Ex.: ldaa #$55

Adresare directă: instrucţiunea conţine adresa operandului; se mai numeşte şi adresare în pagina 0 întrucît

adresa este în domeniul $0000 - $00ff;

Ex.: ldaa $55

Adresare directă extinsă: instrucţiunea conţine întreaga adresă, pe 16 biţi;

Page 27: Subiecte SI Rezolvate de Mine

27

Ex.: ldaa $5555

Adresarea relativă: instrucţiunea conţine un deplasament cu semn, pe 8 sau 16 biţi;

Adresarea indexată: există multe variante; foloseşte un registru pentru a calcula adresa efectivă;

Adresare indexată indirectă: adresa calculată conţine adresa efectivă;

33. Limbaje de nivel inalt pt uc, avantaje, dezavantaje

. Limbajul C

Este cel mai utilizat limbaj de nivel înalt la programarea sistemelor încorporate;

Se foloseşte limbajul C ANSI standard:

Compilatorul de C pentru microcontrolere admite extensii particulare unei familii de microcontrolere; creşte

compactabilitatea codului dar scade portabilitatea;

Variabile:

Bit: 1 sau 0; folosirea sa este o extensie la limbajul standard;

Char: valori pe 8 biţi cu sau fără semn; se recomandă folosirea variabilelor unsigned char şi bit întrucît

hardware-ul le tratează în mod direct; variabilele signed char generează cod suplimentar;

Int: variabila este pe 16 biţi; spre deosebire de familia x86, o asemenea variabilă este memorată cu

c.m.s.o. la adresa cea mai mică;

Long: valori pe 32 biţi;

Float: variabilă în virgulă flotantă, pe 32 biţi;

Spaţii de memorie:

code: pentru codul programului şi constante care nu se schimbă; plasat în memoria fixă internă; nu există

instrucţiuni pentru scrierea în acest spaţiu întrucît modificarea codului (programarea) nu se face pe placa

ţintă;

data: plasat în memoria RAM internă; dimensiune mică; memorează variabile care îşi schimbă des

valoarea;

xdata: plasat în memoria RAM externă; dimensiune dependentă de procesor, de ex. maxim 64 KO la

microcontrolerul 8051;

Exemple:

#define PORTA XBYTE[0x4000]; /*alocă valoarea 4000H lui PORTA*/

bit flag1; /*defineşte variabila flag1, pe un singur bit, plasat în memoria RAM internă*/

code char table1 [ ] = 1,2,3,”HELP”,0xff; /*defineşte un grup de 9 octeţi, plasaţi în memoria fixă,

începînd cu o adresă cu numele table1; caracterele H, E, L, P vor fi memorate sub formă de octeţi

ASCII*/

xdata unsigned int temp1; /*alocă un spaţiu de 2 octeţi în memoria RAM externă*/

34. Conectarea memoriei externe la 8051.

În general este suficientă memoria internă a microcontrolerului întrucît aplicaţiile de timp real cer puţină

memorie;

Memoria externă poate fi:

de program şi de date dacă microcontrolerul are magistrale externe de adrese/ date;

doar de date dacă microcontrolerul nu are magistrale externe de adrese/ date;

Dacă nu există magistrale externe:

memoria poate fi conectată doar la liniile de port;

toate tranziţiile se vor face prin program;

soluţie lentă;

Page 28: Subiecte SI Rezolvate de Mine

28

Trebuie cunoscută harta memoriei şi modelul de memorie specifice microcontrolerului;

La unele microcontrolere poate fi conectată memorie serială, prin magistrala I2C;

Conectarea memoriei externe la microcontrolerul 8051

Problemă tratată; sub 7.

Utilizînd liniile de port pot fi conectate oricîte module de memorie;

35. Unitate centrala cu uc MC9S12DJ256 in modul NARROW, conectata la o memorie

pe octet. UC în modul Narrow conectată la o memorie pe octet:

a. A0 a UC se leagă la A0 a memoriei;

b. A1 a UC se leagă la A1 a memoriei;

c. A15 a UC se leagă la A15 a memoriei;

36. Unitate centrala cu uc MC9S12DJ256 in modul WIDE, conectata la o memorie pe

cuvant. UC în modul Wide conectată la o memorie pe cuvînt:

a. A1 a UC se leagă la A0 a memoriei;

b. A2 a UC se leagă la A1 a memoriei;

c. A15 a UC se leagă la A14 a memoriei;

d. A0 a UC este High Byte Strobe;

e. /LSTRB a UC este Low Byte Strobe;

Page 29: Subiecte SI Rezolvate de Mine

29

37. paginarea memoriei la micr. MC9S12DJ256. Paginarea memoriei:

a. Fereastra de paginare: $8000 - $BFFF;

b. Registrul de paginare: PPAGE; selectează care din 64 de pagini de cîte 16 K este activă la un moment dat;

c. Rangurile vor apare la terminalele PORTK 5:0 (XA19 – XA14); se concatenează la A13 – 0:

Page 30: Subiecte SI Rezolvate de Mine

30

38. Conectarea memoriei externe la un uc fara magistrale externe. Conectarea memoriei externe la microcontrolerele fără magistrale externe

Doar prin intermediul liniilor de port;

Doar pentru memorie de date;

Transferul va fi lent, întrucît toate tranziţiile semnalelor se vor face prin program; prin program se vor transfera

datele şi se va stabili şi direcţia porturilor;

Numărul de circuite de memorie este limitat doar de numărul liniilor de port ale microcontrolerului; sunt necesare

linii de port pentru adrese, date şi comenzi;

Dacă numărul liniilor de port este mare, nu sunt necesare circuite suplimentare;

Dacă numărul liniilor de port este mic, sunt necesare registre (se face demultiplexarea liniilor de port) şi, eventual,

decodificatoare; transferul va fi mai lent întrucît un ciclu se va desfăşura în 2 faze;

Page 31: Subiecte SI Rezolvate de Mine

31

39. Solutii pentru conectarea porturilor externe la uc 8051.

1. Plasarea porturilor de intrare/ ieşire în spaţiul de memorie

Înseamnă conectarea porturilor în mod similar cu circuitele de memorie;

Comunicarea cu porturile se face cu aceleaşi instrucţiuni ca şi cu memoriile;

Comunicarea este rapidă fiind limitată doar de caracteristicile microcontrolerului;

Porturile de ieşire pot fi conectate doar în spaţiul de date;

Porturile de intrare pot fi conectate şi în spaţiul de date şi în cel de program;

Dezavantaj: ocupă din spaţiul de memorie (puţin important întrucît aplicaţiile de timp real cer, în general, puţină

memorie);

Program pentru aprinderea led-urilor:

MOV DPTR,#0C000H

MOV A,#00H

MOVX @DPTR,A

JMP $

Program pentru stingerea led-urilor:

MOV DPTR,#0C000H

MOV A,#0FFH

MOVX @DPTR,A

JMP $

Program pentru citirea liniilor externe:

MOV DPTR,#0E000H

MOVX A,@DPTR

JMP $

Page 32: Subiecte SI Rezolvate de Mine

32

5.2. Plasarea porturilor de intrare/ ieşire în spaţiul de intrare/ ieşire

Porturile externe vor fi conectate la liniile de port ale microcontrolerului;

Semnificaţiile liniilor de port ale microcontrolerului sunt cele de intrare/ ieşire şi nu cele alternative;

Nu se recomandă utilizarea porturilor care au ca funcţiuni alternative cele de magistrale de adrese şi date;

Soluţia poate fi aplicată şi la microcontrolerele care nu au resurse externe pentru conectarea memoriilor;

Restricţiile sunt date doar de caracteristicile porturilor microcontrolerului;

Soluţia este lentă întrucît toate tranziţiile semnalelor se vor face prin intermediul instrucţiunilor;

Program pentru aprinderea led-urilor:

MOV P1,#00H

SET P3.0; se considera ca P3.0 era la 0 logic

CLR P3.0; P3.0 ramine la 0 logic

JMP $

Program pentru stingerea led-urilor:

MOV P1,#0FFH

SET P3.0

CLR P3.0

JMP $

Program pentru citirea liniilor externe:

CLR P3.1; se considera ca P3.1 era la 1 logic

MOV A,P1

SET P3.1; P3.1 ramine la 1 logic

JMP $

Page 33: Subiecte SI Rezolvate de Mine

33

40. Solutii pentru conectarea porturilor la MC9S12DJ256. Aceleasi solutii:

Page 34: Subiecte SI Rezolvate de Mine

34

2.

41. Enumerati solutii pentru reducerea costurilor (/consumului) in faza de proiectare. Soluţii în faza de proiectare

Deconectarea internă dinamică;

Moduri de lucru cu consum redus;

Modificarea frecvenţei şi a nivelului tensiunii de alimentare;

Codificarea pe magistrale de adrese;

Codificarea instrucţiunilor;

Deconectarea internă dinamică: deconectarea diferitelor blocuri din procesor, în special nivele din banda de

asamblare; reducerea consumului se face fără afectarea întregului circuit şi sistem spre deosebire de modificarea

frecvenţei şi tensiunii de alimentare.

Moduri de lucru cu consum redus: implementează conceptul de “aşteptare inteligentă”; intrarea în aceste moduri

se face prin program (SO sau activarea unui rang dintr – un SFR) iar ieşirea, prin întreruperi sau hardware; 2

nivele:

Modul Idle (Sleep):

Partea de execuţie a instrucţiunii din cadrul procesorului este oprită iar restul (sistemul de

întreruperi şi memorii, periferice interne) rămîne activat; consumul scade semnificativ: de ex. la

80C51 scade de la 16 mA în modul normal la 3,7 mA în modul Idle;

Cere puţine operaţii suplimentare, ceea ce permite intrarea şi ieşirea de mai multe ori într – o ms;

atunci cînd SO detectează că toate firele de execuţie ale unui program sunt blocate aşteptînd o

Page 35: Subiecte SI Rezolvate de Mine

35

întrerupere, un eveniment sau un timeout, ar trebui să instaleze modul Idle; de reţinut că ieşirea

din modul Idle costă timp şi energie;

Minimizarea consumului în modul Idle cere analizarea hardware-ului şi a modului de setare a

diferitelor linii; de ex. liniile de I/ E sunt alimentate în timpul modului Idle:

o Dacă sunt intrări, pot fi folosite ca intrări de întrerupere pentru a scoate procesorul din

modul Idle (de ex. microcontrolerul PIC 16F84, liniile RB4 – 7); dacă sunt în vînt

(neconectate le vreo ieşire) pot apare tranziţii accidentale care vor creşte consumul;

o Dacă sunt ieşiri, contează setarea: dacă sunt legate intern la Vcc prin o rezistenţă, atunci

setarea lor la 0 va crea căi suplimentare de curent adică creşterea consumului;

Modul Stop:

Se opreşte întregul circuit (de ex. prin oprirea oscilatorului intern);

Intrarea se face prin program iar ieşirea prin Reset sau întrerupere;

Codificarea instrucţiunilor:

Scopul este minimizarea tranziţiilor în nivelele din banda de asamblare implicate în aducerea şi

decodificarea codului instrucţiunilor;

Alocarea de coduri instrucţiunilor se face prin metode statistice asupra adiacenţei configuraţiilor;

42. Justificaţi impactul frecvenţei şi a tensiunii de alimentare asupra consumului

sistemelor încorporate. Soluţii. Modificarea frecvenţei şi a nivelului tensiunii de alimentare: soluţia este determinată de caracteristicile

tehnologiei procesorului; în continuare referirea se va face la tehnologia CMOS;

Consumul de putere într – un circuit CMOS este dat de formula:

Ptotal = Pstatic + Pshort + CSWfVdd2 + Pglitching,, unde

Pstatic este puterea consumată datorată curenţilor reziduali; are o valoare chiar dacă circuitul nu lucrează; are o

pondere neînsemnată pentru circuitele CMOS; următoarele 3 componente alcătuiesc puterea dinamică;

Pshort apare la tranziţii atunci cînd cele 2 tranzistoare din etajul final sunt simultan deschise (ptr. o perioadă foarte

scurtă); prin buna proiectare a circuitelor poate fi păstrată la < 10% din puterea dinamică;

CSWfVdd2 este puterea de comutare; este dată de frecvenţa tactului, de nivelul alimentării şi de capacitatea de

comutare care, la rîndul ei, depinde de datele care se procesează şi de capacitatea circuitului care realizează

comutarea;

Pglitching este dată de tranziţii nedorite din interiorul circuitului; 8 – 25% din puterea de comutare;

Puterea de comutare are ponderea cea mai mare; într – un sistem multiprocesor şi mulitasking are

importanţă alocarea task – urilor la procesoare şi procesorul ales pentru un anumit task; într – un sistem

uniprocesor contează caracteristica internă de modificare a frecvenţei (de ex. există microcontrolere care

pot divide frecvenţa primită din exterior cu 16 sau 256);

43. Judecati impactul codificarii pe magistrala externa asupra consumului SI. Solutii

(?) Codificarea pe magistrala de adrese:

Capacitatea intrinsecă a magistralelor externe procesorului este cu cîteva ordine de mărime mai mare ca

cea a magistralelor interne; consumul poate fi redus minimizînd tranziţiile liniilor de I/ E ale procesorului

Soluţia cea mai eficientă constă în codificarea informaţiei trimisă pe magistralele externe; întrucît

tranziţiile de pe liniile de date depind de configuraţia care se transferă, nu se poate interveni asupra

magistralei de date (la transferul operanzilor); a fost vizată magistrala de adrese;

Scheme de codare pentru transferuri low – power:

Codul Bus invert,

Codul Gray,

Page 36: Subiecte SI Rezolvate de Mine

36

Codul Beach şi

Codul T0: se foloseşte o linie suplimentară, INC, pentru a evita transferul de adrese consecutive;

dacă 2 adrese sunt consecutive, linia INC = 1, liniile de adrese rămîn nemodificate (pentru a evita

tranziţii inutile) iar noua adresă este calculată la recepţie; dacă cele 2 adrese nu sunt consecutive,

linia INC = 0 iar liniile de adrese vor lucra normal.

44. Solutii pentru reducerea consumului in faza de functionare la nivelul SO.

La nivelul SO: instalarea modului “low power” şi modificarea frecvenţei tactului şi nivelului tensiunii de

alimentare;

Instalarea modului “low power”:

Este necesar un mecanism pentru a stabili momentul cînd se va instala modul “low power”;

O soluţie: a previziona momentul cînd urmează o perioadă inactivă, bazat pe istoria funcţionării

procesorului; valoarea previzionată devine o metrică pentru a determina impactul acestei metode; soluţia

este potrivită în aplicaţii “event driven” ca de ex. interfeţe, la care întîrzierea datorată nepotrivirii între

valoarea previzionată şi cea reală poate fi tolerată;

Modificarea frecvenţei tactului şi nivelului alimentării:

Înseamnă adaptarea resurselor procesorului la cerinţele taskului curent;

Frecvenţa tactului poate fi modificată intern (prin programare) sau extern (prin terminale de I/ E);

45. Solutii pentru programul aplicativ(reducerea consumului) in faza de functionare la

nivelul programelor aplicatie. La nivelul programului aplicativ: conceperea programelor ţinîndu – se cont de un model instrucţiune – consum

şi optimizarea codului pentru a rula mai rapid şi a ocupa mai puţin spaţiu;

Utilizarea unui model instrucţiune – cost:

Permite obţinerea unui cost de putere pentru componenta software a unui sistem;

Poate fi folosit de compilatoare şi generatoare de cod pentru a genera cod pentru “low power”;

Influenţează decizii la nivele de proiectare de sistem ca de ex. partiţionarea hardware – software;

Permite compararea diferitelor procesoare d.p.d.v. al consumului;

Asigură suportul pentru dezvoltarea software – ului “low power”;

O tehnică pentru obţinerea modelului instrucţiune – consum se bazează pe măsurarea consumului atunci

cînd procesorul execută, în mod repetat, aceeaşi instrucţiune; tehnica este parţial eficientă: la unele

procesoare nu s – au obţinut variaţii între diferitele instrucţiuni în timp ce la alte procesoare aceste variaţii

au fost importante.

46. Solutii pentru reducerea consumului la 8051 si pe sistemele bazate pe ele. Reducerea frecvenţei tactului,

Creşterea vitezei nucleului,

Integrarea de periferice,

Memoria internă,

Tactul,

Îmbunătăţirea modului Stop,

Modul Idle,

Modurile de management a puterii,

Utilizarea întreruperilor cu MMP,

Îmbunătăţirea transferurilor în rafală,

Page 37: Subiecte SI Rezolvate de Mine

37

Execuţie rapidă şi aşteptare.

47. Care este impactul memoriei externe asupra consumului uc cu nucleu 8051. Calea cea mai directă pentru scăderea consumului este creşterea eficienţei microcontrolerului;

Microcontrolerul 80C51 original lucrează cu un ciclu de 12 perioade de tact; microcontrolerele 80C51

moderne lucrează cu cicluri cu 4 sau 1 perioade de tact;

Prima consecinţă este că este nevoie de mai puţin timp pentru a executa aceeaşi operaţie; multe SI

portabile lucrează în rafală, pentru perioade scurte de timp urmate de lungi perioade de aşteptare (de ex.

citirea unor informaţii din mediu, scanarea unui cod de bare etc.); reducerea timpului de execuţie va duce

la reducerea consumului;

Altă consecinţă: se pot obţine performanţe comparabile reducînd frecvenţa tactului; dacă ciclul are doar 4

perioade, în loc de 12, aceeaşi operaţie se poate realiza cu reducerea frecvenţei tactului; fig. arată raportul

consum - performanţă a 3 microcontrolere rulînd acelaşi task; 2 microcontrolere sunt standard, cu ciclu de

12 stări, iar al 3 – lea este performant, avînd doar 4 stări/ ciclu; măsurătorile indică o creştere a

performanţei la microcontrolerul cu 4 stări/ ciclu cu aprox. 250%;

48. Solutii pentru comanda unui comutator cu 8051. Citirea unui comutator

Schema:

Codul:

Page 38: Subiecte SI Rezolvate de Mine

38

Varianta a:

JNB P1.0,APASAT; salt daca este apasat

Varianta b:

JNB P1.0,APASAT; salt daca este apasat

.............................

JNB P1.1,NEAPASAT; salt daca nu este apasat

49. Solutii pentru comanda unui LED cu 8051. Program pentru aprinderea led-urilor:

MOV DPTR,#0C000H

MOV A,#00H

MOVX @DPTR,A

JMP $

Program pentru stingerea led-urilor:

MOV DPTR,#0C000H

MOV A,#0FFH

MOVX @DPTR,A

JMP $

50. Zonele din masina unde intervin uc. Electronica din automobile se poate împărţi în 4 segmente:

a. Putere şi siguranţă:

i. Managementul motorului;

ii. Suspensia electronică;

iii. Sistemul de frînare;

iv. Direcţia;

v. Airbags – urile;

vi. Cutia de viteze;

vii. Drive by wire

b. Comfort şi control:

i. Instrumentaţia de bord;

ii. Luminile;

iii. Scaunele;

iv. Clima;

v. Deschiderea/ închiderea maşinii;

vi. Sistemul de alarmă;

vii. Controlul geamurilor;

viii. Recunoaşterea vocii;

c. Asistarea şoferului:

i. Vizibilitatea nocturnă;

ii. Pilotul automat;

iii. Asistarea parcării şi mersului înapoi;

iv. Evitarea coliziunilor;

v. Monitorizarea presiunii pneurilor;

vi. Lane Departure Warning;

Page 39: Subiecte SI Rezolvate de Mine

39

vii. Heads Up Display;

Ambient (“infotainment”) şi comunicaţii:

Navigare/ GPS;

Sisteme multimedia;

Sistemul audio;

Internet;

Ambientul pasagerilor din spate;

Senzori:

Cantitatea de combustibil;

Viteza de curgere a combustibilului;

Presiunea uleiului;

Temperatura lichidului de răcire;

Temperatura de afară şi din habitaclu;

De distanţă;

Greutatea pasagerilor;

Presiunea pneurilor;

Umiditatea şi lumina externe;

51. CAN intre sistemele incorporate din automobile. CAN: cea mai folosită, pentru aplicaţii lente, de ex. comanda geamurilor, dar şi rapide, de ex. managementul

motorului,abs

52. Solutii pentru masurarea cantitatii de combustibil. a. Pentru cantitatea de combustibil:

53. Reprezentarea nivelelor logice pe liniile magistralei CAN

Reprezentarea biţilor pe linie: prin metoda NRZ (Non Return to Zero):

1 logic înseamnă o tranziţie a liniei;

0 logic înseamnă lipsa tranziţiei;

După 5 biţi de valoare 0 este inserat un bit complementar, pentru resincronizare;

CAN este o magistrală de tip broadcast;

Oricare nod CAN poate începe transmisia dacă magistrala este liberă;

Dacă încep 2 noduri simultan, are loc arbitrarea, la nivelul Header – ului cadrelor:

Nodul care cîştigă arbitrarea continuă transmisia;

Page 40: Subiecte SI Rezolvate de Mine

40

Nodul care pierde arbitrarea aşteaptă pînă la eliberarea magistralei;

Arbitrarea are loc la nivel de bit prin operaţia AND realizată de mediul fizic; există biţi dominanţi şi biţi

recesivi; atunci cînd un nod care transmite un bit recesiv observă un bit dominant, va opri transmisia;

54. Structura cadrelor care circula prin CAN.

Există 4 tipuri de cadre CAN 2.0A: Data, Remote, Error şi Overload;

a. Structura unui cadru de date:

55. Arbitrarea pe magistrala CAN. CAN este o magistrală de tip broadcast;

Oricare nod CAN poate începe transmisia dacă magistrala este liberă;

Dacă încep 2 noduri simultan, are loc arbitrarea, la nivelul Header – ului cadrelor:

a. Nodul care cîştigă arbitrarea continuă transmisia;

b. Nodul care pierde arbitrarea aşteaptă pînă la eliberarea magistralei;

c. Arbitrarea are loc la nivel de bit prin operaţia AND realizată de mediul fizic; există biţi dominanţi şi biţi

recesivi; atunci cînd un nod care transmite un bit recesiv observă un bit dominant, va opri transmisia;

Asta nu cred ca intra!!!

d. Cîmpul Header este alcătuit din:

i. Identificatorul cadrului:

1. 11 biţi pentru versiunea Standard;

2. 29 biţi pentru versiunea Extinsă;

ii. Bitul RTR (Remote Transmission Request): 0 înseamnă cadru de date iar 1 înseamnă cerere pentru

cadru date;

iii. DLC (Data Length Code): indică numărul de octeţi ai cîmpului de date;

e. Cîmpul Data Field este cîmpul de date şi are lungimea maximă de 8 octeţi:

f. Cîmpul CRC (Cyclic Redundancy Check): asigură integritatea transferului;

Page 41: Subiecte SI Rezolvate de Mine

41

g. Cîmpul Ack: este singurul mecanism prin care transmiţătorul află dacă data a fost recepţionată (nu

neapărat de destinatar);

h. Cîmpul EOF încheie cadrul;

i. Cîmpul de date are maxim 8 octeţi de date iar cadrul poate avea maxim 135 biţi, cuprinzînd toţi biţii

suplimentari inclusiv biţii inseraţi datorită metodei de reprezentare NRZ;

j. Cadrul Remote: este transmis de un nod CAN receptor pentru a cere date de la nodul cu identificatorul din

cadru;

k. Cadrul Error: anunţă toate nodurile despre apariţia unei erori pe magistrală; un nod transmiţător va

retransmite cadrul de date la sesizarea cadrului de eroare;

l. Cadrul Overload: este transmis de un nod CAN ocupat pentru a cere timp între un cadru şi următorul:

Între cadre există un cîmp de 3 biţi cu rol de separare;

Un cadru este citit de toate nodurile CAN receptoare;

Toate aceste noduri filtrează o parte sau întregul cîmp Identifier utilizînd registre de mascare; acestea trebuiesc

programate pentru a stabili receptorul (sau receptorii);

Cadrul este valid pentru transmiţător dacă nu a apărut nici o eroare pînă la cîmpul EOF; dacă există vreo eroare el

va retransmite cadrul atunci cînd magistrala este liberă şi în concordanţă cu prioritatea pe care o are;

Cadrul este valid pentru receptor dacă nu a apărut vreo eroare pînă la ultimul bit al cîmpului EOF, care nu este

luat în considerare;

Magistrala poate fi în stare liberă un timp nedeterminat; orice nod CAN poate recunoaşte această stare;

Dacă un nod CAN are un cadru în aşteptare îl va transmite imediat după cîmpul de separare, cu respectarea

priorităţii

56. Tipuri de erori si tratarea lor la CAN. Tratarea erorilor: există 5 tipuri de erori:

a. Bit error: orice transmiţător CAN asigură şi monitorizarea liniei; eroarea este detectată dacă bitul primit

diferă de cel emis; excepţii sunt în timpul arbitrării şi al acceptării;

b. Stuff error: atunci cînd sunt detectaţi 6 biţi cu acelaşi nivel;

c. CRC error: atunci cînd cîmpul CRC transmis diferă de cel calculat de receptor;

d. Form error: atunci cînd un cîmp cu structură fixă conţine biţi ilegali;

e. Acknowledgment error: atunci cînd cîmpul de acceptare nu are forma cerută;

Page 42: Subiecte SI Rezolvate de Mine

42

Un nod CAN care a detectat o eroare va activa un indicator de eroare; acesta poate fi activ sau pasiv, în funcţie de

poziţia nodului;

Din punctul de vedere al erorilor, un nod CAN poate fi:

f. Error active,

g. Error passive sau

h. Bus off.

Un nod CAN include 2 numărătoare pentru erori:

i. Transmit error count (TEC) şi

j. Receive error count (REC);

k. Numărătoarele sunt incrementate la detecţia erorilor, în conformitate cu anumite reguli; de exemplu:

i. Un nod receptor va incrementa, cu 1, REC dacă detectează o eroare, sau

ii. Un nod transmiţător va incrementa, cu 8, TEC dacă activează un indicator de eroare;

l. Numărătoarele sunt decrementate în conformitate cu anumite reguli; de exemplu la recepţia reuşită a unui

mesaj;

m. Dacă valoarea din numărător este mare (de ex. 96) atunci se consideră existenţa unei defecţiuni

permanente, de ex, la nivelul nodului sau la nivelul mediului fizic de comunicare; un ex. de defecţiune

permanentă este defectarea oscilatorului unui nod transmiţător ceea ce va duce la transmiterea continuă pe

linie a unui bit dominant;

n. CAN necesită mecanisme suplimentare de toleranţă la erori pentru a putea fi utilizat la aplicaţii critice, de

tipul x by wire;

57. Solutii pentru conectarea uc la INTERNET. Înseamnă conectarea de produse şi servicii la Internet prin intermediul sistemelor încorporate;

Avantaje:

a. Posibilitate de comandă la distanţă;

b. Posibilitate de actualizare automată a unor baze de date (de exemplu preţuri, produse etc.);

c. Posibilitate de monitorizare de la distantă;

d. Comunicare între diferite aplicaţii (diverse protocoale se înlocuiesc cu TCP/ IP);

e. Uniformizarea interfeţei cu utilizatorul pentru diferite aplicaţii;

Completează suportul pentru “ubiquitous, pervasive and wearable computing”;

Aplicaţii în diverse domenii: domestic, industrial, ştiinţific, comerţ, medical, automotive etc

Modelul clasic server – client: Modelul server – client cu microcontrolere:

Modalităţi de implementare:

Prin conectare directă a sistemelor cu microcontrolere la Internet;

Page 43: Subiecte SI Rezolvate de Mine

43

Prin conectarea sistemelor cu microcontrolere la un PC care va avea rol de poartă la Internet.

În primul caz:

Au aceleaşi poziţii şi ponderi ca sistemele mai mari (PC – urile);

Soluţia cere scrierea unei stive TCP/ IP proprii sau a unui subset al acesteia precum şi rezolvarea conectării fizice la Internet;

Soluţia este relativ ieftină, permite conectarea unor sisteme de dimensiuni mici la Internet dar resursele acestor sisteme sunt limitate.

În al 2 – lea caz:

Sistemele cu microcontrolere sunt grupate, sub controlul unui calculator cu rol de poartă la Internet;

Acesta gestionează toate sistemele, răspunde la cererile lor, poate asigura securitatea sistemelor, monitorizare şi evaluare automate pentru sisteme şi chiar conexiuni multiple, la un moment dat;

Sistemele cu microcontrolere pot comunica ca poartă utilizând diferite standarde: RS 232, RS 485, I2C etc.

58. Implementarea nivelelor Network Acces al protocolului TCP/IP la SI.????? Implementarea Network access:

Prin controlere;

Prin microcontrolere;

Controlere Internet: RTL8019S, CS8900, LAN91C96, LAN91C9111, DP83840A, DP8390, Am79C874 etc.

Alt exemplu: S-7600A:

Conectarea la linie:

Page 44: Subiecte SI Rezolvate de Mine

44

Din punctul de vedere al programatorului transferul de date prin un controler Internet este similar celui prin un

controler UART:

Este necesară programarea circuitului;

La scriere, este încărcat tamponul circuitului, după care serializarea şi transferul informaţiei au loc fără

intervenţia procesorului;

La citire, procesorul este anunţat, fie prin un semnal fie prin un rang în octetul de stare, că tamponul de

recepţie este plin;

Operaţiile necesare pentru iniţializarea unui asemenea controler sunt:

Iniţializarea circuitului, fie prin un semnal extern fie prin setarea unui rang dintr – un registru de control;

Deconectarea transmiţătorului de la linie; operaţia este necesară pentru a evita situaţia în care date

nedorite sunt plasate pe linii în timpul fazei de iniţializare;

Iniţializarea zonelor DMA şi a indicatorilor precum şi alocarea zonelor RAM pentru transmiterea şi

recepţia datelor în format Ethernet; în unele cazuri alocarea se poate face şi dinamic;

Programarea controlerului prin încărcarea adreselor lor în registrele interne; multe controlere pot încărca

aceste adrese în mod automat din o memorie de tip EEPROM;

Memorarea datelor iniţiale: viteză, număr de biţi, moduri de operare etc.;

Activarea întreruperilor (dacă sunt utilizate);

Reconectare a transmităţorului pe linii şi setare a rangurilor Tx/ Rx; plasează controlerul pe linie şi

activează transmisia şi recepţia.

Transmisia unui format:

Se presupune că procesorul a pregătit format valid, inclusiv cîmpurile de adresă şi tip de protocol;

Alocare tampon de transmisie; unele controlere au o zonă fixă alocată iar la altele alocarea se face

înaintea transmisiei;

Verificare a alocării; se verifică dacă alocarea a reuşit;

Plasare a datelor în tamponul DMA; formatul va include adresa, tipul şi datele; controlerul va adăuga

header – ul şi controlul de erori;

Generare o comandă de transmisie, setînd un indicator în unul din registre; formatul va fi plasat în coada

de transmisie şi controlerul îl va transmite dacă linia este liberă sau va încerca mai tîrziu, dacă linia este

ocupată;

Page 45: Subiecte SI Rezolvate de Mine

45

Aşteptare pentru încheierea transmisiei, fie prin citirea unui indicator fie prin o cerere de întrerupere; este

necesară verificarea stării şi tratarea eventualelor erori;

Eliberare a memoriei alocate pentru tampon;

Recepţia unui format:

Sesizarea preluării unui format, fie prin citirea unui indicator fie prin o cerere de întrerupere; controlerul

anunţă procesorul că un format a fost preluat fie datorită potrivirii adresei fie dacă formatul are o adresă

de tip “broadcast”;

Formatul memorat în tamponul controlerului este transferat, prin DMA, în memorie;

Eliberarea resurselor de recepţie;

Întreruperile pot fi generate de controler la:

Transmisie;

Recepţie: fie la recepţia unui format fie la recepţia mai multor formate, în funcţie de resursele hardware

(memorie tampon) ale controlerului; în ultimul caz rutina de tratare va putea transfera mai multe formate,

rezultînd cîştig de timp;

Erori: recepţia unui format eronat sau ilegal;

Cererea este conectată la o intrare de întrerupere a procesorului; dacă procesorul conţine controlerul,

cererea va fi internă;

59. Ce inseamna modul TINI(TINY)? Modulul TINI:

a. Sistem bazat pe microcontroller Dallas orientat pe aplicaţii de tip web server;

b. Microcontrollerul include interfeţe Ethernet, RS 232, I2C, CAN, 1 – Wire;

c. Oferă suport pentru limbajul Java;

d. Include API – uri pentru comunicările seriale;

e. Schema bloc:

Page 46: Subiecte SI Rezolvate de Mine

46

60. Ce inseamna modul ETHERNUT? Modulul Ethernut

a. Bazat pe microcontroler Atmel AT91R40008, cu nucleu ARM7TDMI;

b. Include controler Ethernet compatibil IEEE 802.3, cu rata 10/ 100 Mbps şi conector RJ - 45;

c. Include interfaţă RS232 şi conector DB9;

d. Conţine 256 Ko memorie SRAM şi 4 Mo memorie Flash ROM, programabilă In – system şi 512 O

memorie EEPROM programabilă In – system;

e. Periferie internă: Watchdog, 3 contoare/ numărătoare pe 16 biţi, ceas de timp real, 24 linii de port;

f. Dimensiunea plăcii: 80 x 100 mm;

g. Alimentare: 5 – 24 VDC;

h. LED – uri pentru alimentare şi comunicare pe Ethernet;

i. Software: RTOS numit Nut/OS, stivă TCP/IP proprie numită Nut/Net, compilator de C şi biblioteci C;

j. Include aplicaţii: un web server, o poartă RS232 – TCP/IP etc.