Probleme Enunturi Solutii Is

41
5. 5.1. PROGRAMAREA CALCULATOARELOR 5.1.1. Pentru progamul următor, corectați erorile de editare, compilare, atenționările și erorile de funcționare. Programul calculează incidența și procentajul literelor dintr-un fișier (denumit mai jos histograma). Scrieți în dreptul liniei greșite varianta corectă. #include <stdio.h> int main (int argc, char **argv) { FILE p_file; /* Fisier de intrare */ int c; /* Caracterul curent citit */ int hist['Z' - 'A' + 1]; /* Histograma literelor */ int sum_let; /* Numarul total de litere din fisier */ float freq; /* Frecvența de apariție a literei curente */ /* Verificati numarul de argumente */ if (argc < 2) { printf (" %s <input file>\n", argv[0]); return (1); } /* Deschideti fisierul de intrare specificat de argv[1] */ p_file = fopen (argv[1], "r"); if (p_file == NULL) { printf ("Nu poate fi deschis fisierul de intrare '%s'.\n", argv[1]); return (1); } /*intializare cu 0 a histogramei */ for (c = 'A'; c > 'Z'; c++) hist[c - 'A'] = 0; /*Citirea continutului fisierului, caracter cu caracter */ sum_let = 0; while ((c = fputc(p_file)) != EOF) { if (c >= 'a' && c <= 'z') c += ('a' - 'A'); /*Daca este cazul, se trece la litera mare */ /* daca e litera, actualizeaza histograma */ if (c >= 'A' && c <= 'Z') { (hist[c - 'A'+1])++; sum_let++; } } fclose (p_file,w); /* Inchide fisierul */ /* Afiseaza histograma */ for (c = 'A'; c <= 'Z'; c++) { freq = 100 * (float)hist[c - 'A'] / (float)sum_let; printf ("%c : %4c (%5.2f %%)\n", c, hist[c - 'A'], freq); } return (0); } Soluție: #include <stdio.h>

description

Probleme si solutii examenul de licenta

Transcript of Probleme Enunturi Solutii Is

  • 5.

    5.1. PROGRAMAREA CALCULATOARELOR

    5.1.1. Pentru progamul urmtor, corectai erorile de editare, compilare, atenionrile i erorile de funcionare. Programul calculeaz incidena i procentajul literelor dintr-un fiier (denumit mai jos histograma). Scriei n dreptul liniei greite varianta corect.

    #include

    int main (int argc, char **argv) {

    FILE p_file; /* Fisier de intrare */

    int c; /* Caracterul curent citit */

    int hist['Z' - 'A' + 1]; /* Histograma literelor */

    int sum_let; /* Numarul total de litere din fisier */

    float freq; /* Frecvena de apariie a literei curente */ /* Verificati numarul de argumente */

    if (argc < 2) {

    printf (" %s \n", argv[0]);

    return (1);

    }

    /* Deschideti fisierul de intrare specificat de argv[1] */

    p_file = fopen (argv[1], "r");

    if (p_file == NULL) {

    printf ("Nu poate fi deschis fisierul de intrare '%s'.\n", argv[1]);

    return (1);

    }

    /*intializare cu 0 a histogramei */

    for (c = 'A'; c > 'Z'; c++)

    hist[c - 'A'] = 0;

    /*Citirea continutului fisierului, caracter cu caracter */

    sum_let = 0;

    while ((c = fputc(p_file)) != EOF) {

    if (c >= 'a' && c = 'A' && c

  • int main (int argc, char **argv) {

    FILE *p_file; /* Fisier de intrare */

    int c; /* Caracterul curent citit */

    int hist['Z' - 'A' + 1]; /* Histograma literelor */

    int sum_let; /* Numarul total de litere din fisier */

    float freq; /* Frecvena de apariie a literei curente */ /* Verificati numarul de argumente */

    if (argc < 2) {

    printf (" %s \n", argv[0]);

    return (1);

    }

    /* Deschideti fisierul de intrare specificat de argv[1] */

    p_file = fopen (argv[1], "r");

    if (p_file == NULL) {

    printf ("Nu poate fi deschis fisierul de intrare '%s'.\n", argv[1]);

    return (1);

    }

    /*intializare cu 0 a histogramei */

    for (c = 'A'; c = 'a' && c

  • printf( "Efectul transmiterii intregului tabel ca parametru:\n\nValorile"

    " din tabelul original sunt:\n" );

    for (i=0;i

  • Soluie: #include

    #include

    int main() {

    FILE *pf;

    char ch, s[100], nume_fis[50] = "c:\\fisier.txt";

    int i;

    clrscr();

    /* crearea fisierului prin introducerea caracterelor,

    inclusiv '/n', de la tastatura. Se termina cu Ctrl-Z */

    pf=fopen(nume_fis,"w");

    printf("\nIntroduceti textul: ");

    while ((ch=getc(stdin))!=EOF)

    putc(ch,pf);

    fclose(pf);

    /* Adaugarea unor siruri de caractere. Se termina cu Ctrl-Z*/

    pf=fopen(nume_fis,"r+");

    fseek(pf,0l,2);

    printf("Precizati sirurile de caractere incheind cu ^Z:");

    while(fgets(s,100,stdin)!=(char*)0)

    fputs(s,pf);

    fclose(pf);

    /* Afisarea continutului */

    printf("\nContinutul fisierului, linie cu linie, este: \n");

    i=0;

    pf=fopen(nume_fis,"r");

    while(fgets(s,100,pf)!=(char *)0) {

    printf("%d %s",i,s);

    i++;

    }

    fclose(pf);

    getch();

    return 0;

    }

  • 5.2. STANDARDE I GRAFIC TEHNIC I CREAIE INTELECTUAL

    5.2.1. Prezentai, pe scurt, regulile de ntocmire a schemei circuitelor din cadrul documentaiei unei instalaii electrice de automatizare n situaia n care aceasta conine att circuite de for ct i circuite de comand. Soluie: Schema circuitelor permite nelegerea funcionrii n detaliu a operaiunilor ce pot fi realizate de maina industrial. Ea reprezint, cu ajutorul semnelor convenionale, dispozitivele electrice i toate legturile, n special legturile electrice utilizate n funcionarea mainii. Pentru schema circuitelor se recomand formatul A3. Semnele convenionale utilizate, cum ar fi de exemplu literele reper pentru identificarea elementelor, trebuie s fie conform standardelor n vigoare. Aparatele sunt reprezentate n poziia lor fr tensiune, iar operatoarele logice binare puse la zero. Organele mecanice de comand sunt reprezentate n poziia pe care o au nainte de a porni n ciclu.

    Diferite circuite se prezint astfel nct s permit nelegerea i depanarea lor uoar. Se recomand reprezentarea separat pe schem a circuitelor de putere (a), de comand i de semnalizare (b), n msura n care acestea sunt separate electric, astfel: a) Circuitele de for se reprezint prin una sau mai multe linii orizontale de pe care pleac perpendicular derivaiile cu proteciile lor, spre fiecare aparat receptor (motor, etc.); b) In circuitele de comanda si semnalizare fiecare circuit elementar se reprezint ntre dou sau mai multe linii paralele, perpendicular pe acestea, sub forma unui traseu cuprinznd att ct este

    posibil, una sau mai multe linii drepte.

    De asemenea, trebuie s se reprezinte sursa sau sursele de alimentare a circuitelor de comand. Pentru echipamentele electronice, n locul schemei circuitelor se poate reprezenta o schem asemntoare cu schema funcional, dar indicnd n detaliu relaiile intrri-ieiri ale operatoarelor logice binare (de exemplu, utiliznd tabelele de adevr). Pe schema circuitelor se recomand trecerea urmtoarelor informaii: - polaritile; - tensiunile i frecvenele diferitelor surse de alimentare i numrul fazelor; - caracteristicile specifice fiecrui aparat de comand, atunci cnd acestea sunt necesare la nelegerea funcionrii (rezistoare, capaciti etc.); - curenii nominali ai siguranelor fuzibile, valorile de reglaj ale aparatelor cu posibilitatea de reglaj;

    - mijloacele de acionare i funciunile aparatelor care nu au funcii strict electrice (detectoare de poziie, contacte cu comand manual, electrodistribuitoare hidraulice sau pneumatice, dispozitive de temporizare);

    - diagrama contactelor aparatelor cu comand manual; - diagrama circuitelor de lucru ale unitilor componentelor sau ale utilajului n general; - alte precizri care s contribuie la citirea i nelegerea corect a schemei circuitelor (de exemplu valorile de reglaj ale parametrilor traductoarelor).

    Astfel de precizri se pot da, de exemplu ntr-o legend pe schem. n cazul n care maina poate executa mai multe cicluri (eventual cu puncte de plecare diferite), trebuie s se precizeze pe schem ciclul pentru care aceasta este definit. Se recomand reprezentarea elementelor consumatoare de energie ale aparatelor (bobine, electromagnei, etc.) n apropierea liniei la care sunt racordate direct i care este destinat s fie legat, eventual la pmnt; contactele pe care le comand sunt atunci racordate la alt linie. Pentru uurarea citirii schemei, se recomand reprezentarea operaiilor n ordinea lor succesiv de la stnga la dreapta sau de sus n jos.

    Trebuie s se indice clar funcia fiecrui circuit n funcionarea mainii.

    5.2.2. Precizai, pe scurt, cte o msura recomandat pentru implementare a patru dintre urmtoarele metode de protecie, destinate a fi aplicate in cadrul echipamentelor electrice:

  • a. Protecia mpotriva electrocutrilor; b. Protecia mpotriva scurtcircuitelor; c. Protecia la suprasarcin; d. Protecia mpotriva repornirii automate dup ntreruperea i restabilirea tensiunii; e. Dispozitive pentru oprirea de urgen i pentru ntreruperea alimentrii; f. Protecia n caz de defect si g. Perturbaii radioelectronice. Soluie a. Protecia mpotriva electrocutrilor a.1 Protecia mpotriva electrocutrilor prin atingere direct. Aceast protecie este destinat s protejeze persoanele mpotriva pericolelor care pot rezult n urma unui contact direct cu prile active. Msurile pot fi: - prile active trebuiesc protejate prin carcase; - prile active trebuiesc izolate prin nglobarea acestora ntr-un nveli izolant. a.2. Protecia mpotriva electrocutrilor prin atingere indirect. a.2.1. Protecia prin deconectarea rapid a alimentrii cu dispozitive de protecie. Deconectarea rapid a alimentrii, dup apariia unui defect, n scopul de a mpiedica meninerea tensiunii de atingere un timp care prezint pericol pentru persoane. Aceasta presupune: - racordarea prilor metalice inactive la circuitul de protecie; - dispozitive de protecie care s asigure deconectarea rapid a alimentrii, n caz de defect, cu dispozitive de protecie (sigurane, ntreruptoare, relee etc.). Trebuie s se asigure continuitatea circuitului de protecie prin legturi efective, adic prin conductoare de protecie sau direct prin pri metalice.

    Organele de comand manual trebuie s fie realizate din materiale electroizolante. a.2.2. Protecia prin utilizarea tensiunii reduse. Tensiunile recomandate sunt de cel mult 40 Vef in c. a. si 60 in c. c.

    a.2.3. Separare de protecie. Separarea de protecie a unui circuit, n scopul realizrii de circuite unice, pentru evitarea contactului cu prile inactive, susceptibile a fi puse sub tensiunea prii active. b. Protecia mpotriva scurtcircuitelor. Protecia general se prevede la nceputul cablului de alimentare a echipamentului. Trebuie s asigure protecia conductoarelor, cu ajutorul dispozitivelor de protecie corespunztor alese. Se recomanda utilizarea de sigurane fuzibile sau ntreruptoare automate. Acestea trebuie s asigure o capacitate de rupere egal cu intensitatea curentului de scurtcircuit estimat n punctul de instalare. Alegerea curentului

    nominal al unui dispozitiv de protecie mpotriva scurtcircuitelor este determinat de seciunea cea mai mic a conductoarelor protejate de acest dispozitiv. c. Protecia la suprasarcin. Protecia conductoarelor mpotriva suprasarcinilor este necesar pentru circuite care alimenteaz motoare. Aceasta se poate realiza cu diverse aparate cum ar fi releele termice.

    d. Protecia mpotriva repornirii automate dup ntreruperea i restabilirea tensiunii. n cazul n care repornirea automat a unor aparate, dup ntreruperea i restabilirea alimentrii, poate s prezinte pericol pentru persoane, s provoace deteriorarea mainii sau s duneze n funcionare, aceast repornire trebuie s fie mpiedicat. e. Dispozitive pentru oprirea de urgen i pentru ntreruperea alimentrii. Echipamentul electric de automatizare al unei maini va cuprinde dispozitive care s permit oprirea n caz de pericol si separarea echipamentul electric de la sursa de alimentare. Un astfel de dispozitiv

    poate fi, de exemplu, un buton ciuperc de culoare roie. f. Protecia n caz de defect. Dac defectarea echipamentului de automatizare poate fi cauza unor accidente, pentru evitarea acestui risc se vor lua msuri corespunztoare, de exemplu: - utilizarea de dispozitive mecanice pentru asigurarea securitii mainii; - blocri corespunztoare ale circuitelor electrice, care comand micri mecanice; - utilizarea de funcii redondante (dublare de circuit); - adugarea de circuite care s asigure funcii de securitate. g. Perturbaii radioelectronice. Efectele nedorite ale perturbaiilor radiostatice i electromagnetice se vor elimina, de exemplu, utiliznd filtre, alegnd anumite nivele de

    putere, metode i tehnici de cablare i ecrane adecvate.

  • 5.2.3. Precizai msurile recomandate pentru a asigura fiabilitatea i utilizabilitatea (condiii tehnice de calitate) ale unui program.

    Soluie: a) Conditii pentru asigurarea fiabilitatii:

    -Produsul trebuie s includ informaii despre procedurile de salvare a datelor. -Produsul trebuie sa includa functiuni suplimentare prin care se asigur capabilitatea funcional, se exemplu: -verificri c intrarea este plauzibil; -protecie mpotriva consecinelor grave datorate unei greeli de utilizare; -reluare n caz de eroare.

    b) Modalitati de asigurare a calitatii de utilizabilitate a unui program: -Produsul trebuie sa aiba o interfata cu utilizatorul, cum ar fi, de exemplu: linie de comand, meniu, ferestre, taste funcionale, funciune de ajutor. -Produsul trebuie sa dispuna de instrumente de adaptare la necesitatile utlizatorului, cum ar fi

    de exemplu: modificarea parametrilor; modificarea algoritmilor de prelucrare pe calculator;

    atribuiri la tastele funcionale. -Produsul trebuie sa asigure protecia dreptului de autor, prin masuri cum ar fi: protecia tehnic mpotriva copierii; data limit sau durata preprogramat de utilizare; atenionrile interactive n vederea pltirii copiilor. Masurile care se recomanda pentru usurinta de a avea o privire de ansamblu in cadrul cerintei de utilizabilitate a programelor si datelor sunt: -Fiecare suport de date trebuie s conin identificarea produsului, iar dac exist mai mult dect un suport, atunci s conin i un numr sau un text distinctiv. -Atunci cnd programele sunt puse n funciune, utilizatorul trebuie s fie ntotdeauna n msur de a ti care este funciunea care este n curs de a se executa. -Ar trebui ca programele s furnizeze utilizatorului informaii ntr-o form care s fie uor vizibil i uor de citit. Utilizatorul ar trebui s fie ghidat printr-o reprezentare i grupare adecvat a informaiei. Atunci cnd este necesar, programele ar trebui s atenioneze utilizatorul.

    -Mesajele emise de programe pot fi concepute astfel nct utilizatorul s le poat diferenia uor dup tip, de exemplu: confirmare; interogri din programe; avertizri; mesaje de eroare. -Formatele ecranelor de intrare, rapoartelor sau altor intrri i ieiri ar trebui proiectate astfel nct s fie clare i uor de perceput, de exemplu: -cmpurile alfanumerice s fie aliniate la stnga; -cmpurile numerice s fie aliniate la dreapta; -n tabele punctele sau virgulele zecimale s fie aranjate pe aceeai linie vertical; -limitele de cmp s fie uor de recunoscut; -cmpurile, a cror utilizare este obligatorie, sa fie semnalate ca atare; -erorile de intrare identificate sunt imediat luminate cu intensitate mai mare n formatul

    ecranului de intrare;

    - se atrage atenia utilizatorului la o schimbare a coninutului ecranului cu ajutorul unui semnal vizual sau auditiv.

  • 5.3. DISPOZITIVE I CIRCUITE ELECTRONICE

    5.3.1. Pentru schema din figur se presupune c dispozitivul de comand pe gril (DCG) furnizeaz semnale de comand cu un unghiul de comand constant, raportat la fiecare trecere prin zero a tensiunii reelei. Frecvena tensiunii de alimentare este f = 50 Hz.

    a) S se reprezinte formele de variaie n timp ale tensiunilor u2(t) i uS(t), pentru = /2 (rad).

    b) tiind c pentru u2 (t)= U2m.sin t expresia curentului de sarcin iS(t) este

    2

    2

    0,pentru [0, ) ;

    / sin ,pentru [ , ]; (1.1)

    0,pentru ( , ) ;

    / sin ,pentru ,2 .

    m S

    S

    m S

    t

    U R t ti t

    t

    U R t t

    s se calculeze valoarea medie US med iar pe baza rezultatului obinut s se reprezinte

    caracteristica de comand: US med(), pentru 0; .

    Soluie:

    a) mss.sf

    T 2002050

    11 , .

    mss./

    ftt 50050

    502

    2

    2

    .

    Folosind aceste valori i cunoscnd principiul de funcionare al schemei rezult reprezentarea din Fig. 1.

    Fig 1. Fig. 2.

    b) S S Su t R i t 2 2

    0 0 0

    1 1 1 1( ). ( ) ( ). ( ) ( ). ( ) ( ). ( )

    2 2S med S S S S S S SU u t d t R i t d t R i t d t R i t d t

    2 1 cosmSmedU

    U

    , avnd forma de variaie din figura Fig. 2.

    Us

    U2

  • 5.3.2. Se consider schemele de amplificatoare inversoare din figurile de mai jos realizate cu amplificatoare operaionale. a) Pentru schema din figura din stnga s se determine expresiile tensiunii de ieire U0 = f(U1)

    de parametru x, 0;1x fiind coeficientul de poziie al cursorului poteniometrului, n dou situaii:i) amplificatorul operaional este ideal i fr saturaie, ii) amplificator operaional este ideal cu fenomen de saturare a ieirii. n primul caz s se calculeze U0 dac R = 100k, Rp = 50k, x = 0.75, U1 = 8V. n al doilea caz s se calculeze U0, considernd c amplificatorul este polarizat de la o surs de tensiune dubl: +VS , 0V, -VS, i c R = 100k, Rp = 50k, x = 0.5, VS = 10V, U1 = 8V.

    b) Care este deosebirea dintre cele dou scheme din punctul de vedere al rezistenei Rp?

    Soluie: a) i)Pentru un amplificator operaional ideal, variaia tensiunii de ieire este nelimitat,

    0 ;U . n Fig.2a avem montajul unui amplificator proporional inversor, avnd coeficientul de amplificare K negativ:

    1 1o i i ix R x

    U U U KUx R x

    ; ; ( ;0]1

    xK K

    x

    , pentru x 0;1 .

    Aplicaie numeric:

    0.75

    8 24 V1 1 0.75

    o i

    x RU U

    x R

    , deci 24VoU .

    ii) Pentru cazul unui amplificator operaional ideal cu limitare, variaia tensiunii de ieire este

    limitat, 0 ;S SU V V ,. Punnd condiia de limitare a tensiunii de ieire, rezult:

    , ( ; ]; 0;11

    , ; ; 0;11 1

    , [ ; ); 0;11

    S i S

    o i i S S

    S i S

    xV dac U V x

    x

    x xU U dac U V V x

    x x

    xV dac U V x

    x

    Aplicaie numeric:

    0.758V 24V

  • 5.3.3. Se consider schemele electronice din Fig. a i b realizate cu amplificatoare operaionale ideale i elemente neliniare EN cu caracteristica din Fig. c, n configuraii de tipul celor din Fig. d.

    i) S calculeze i s se reprezinte grafic caracteristica de transfer U1(Ue) a schemei din Fig.a atunci cnd EN se realizeaz sub forma EN4. ii) S calculeze i s se reprezinte grafic caracteristica de transfer U1(Ue) a schemei din Fig.b atunci cnd EN se realizeaz sub forma EN6.

    Fig.a. Fig.b.

    En1 En2 En3 En4 En5 En6

    Fig.c. Fig.d.

    Soluie: EN de tip dipol (EN1EN6) pot fi utilizate n orice schem, neavnd terminal conectat la borna de mas (0 V) a sursei de alimentare. Soluie: Amplificatorul operaional ideal este n montaj inversor, deci ecuaia tensiunii de ieire n funcie de intrare este:

    k

    0 k

    1

    100

    100

    ni i i i

    RU KU U U U

    R

    ;

    V V0 10 ; 10iU U

    EN6 are limitele de intrare n conducie egale, DZ1 i DZ2 fiind identice: Pragul de intrare n conducie la polarizare negativ

    UL2 = UZ2 + UDO1 = 5.2[V] + 0,65[V] = 5,85[V] pentru U12 -UL2

  • 5.4. FUNDAMENTELE CALCULATOARELOR

    5.4.1. S se reprezinte funcia f din schema urmtoare cu un numr minim de pori logice SI-NU (2 sau 4 intrri):

  • 5.4.2. S se reprezinte funcia f din figura urmtoare folosind un circuit multiplexor cu 2 intrri de adres, 4 de date i pori logice:

    Vom pune la intrrile de adres ale multiplexorului variabilele a i b. Variabilele c i d sunt puse la intrtile de date n funcie de valorile funciei. In fapt, fiecare intrare de date devine o funcie de cele 2 variabile c i d. obtinem expresiile:

    D00= d , D01= c + d , D02= D03= c

    O schem posibil este reprezentat n figura urmtoare (se accept i reprezentare simplificat pentru circuitul multiplexor cu punctarea doar a intrrilor i ieirilor folosite):

  • 5.4.3. Proiectai un numrtor sincron modulo 5 folosind bistabile JK. Soluie: Vom avea nevoie de 3 bistabile JK. Tabelul de funcionare este urmtorul: Tabelul1

    In tabelul 1 am pus i intrrile J i K ale celor 3 bistabile. Pentru aceasta am folosit tabelul de

    funcionare al bistabilului JK (tabelul 2, nu trebuie specificat n rezolvare).

    Din tabel obinem urmtoarele ecuaii (prin intermediul diagramelor de minimizare):

    Tabelul 2

    J0 = Q2 ; K0 = 1; J1 = Q0 ; K1 = Q0 ; J2 = Q1 . Q0 ; K2 = 1;

    Schema pentru numrtor este dat n figura de mai jos:

  • 5.5. TEORIA SISTEMELOR I

    5.5.1. S se stabileasc dependena intrare - ieire n domeniul imaginilor pentru sistemul din

    figur cu orientarea {w, v1, v2} y.

    a u HR()

    w

    -

    v1 v2

    y HP1(

    )

    HP2(

    )

    HM()

    y

    Soluie: Rezolvarea problemei se bazeaz pe urmtorul rezultat: n ipoteza c ne gsim n cazul SISO, funcia de transfer a sistemului din figur se

    calculeaz cu formula )(H)(H

    )(H)(H

    )(

    21

    1

    1

    .

    Fie Hw(), Hv1() i Hv2() funciile de transfer prin care se exprim n mod separat influena mrimilor de intrare asupra mrimii de ieire. Ele se obin folosind formula anterioar astfel:

    )(H)(H)(H)(H

    )(H)(H)(H

    )(w

    )(y)(H

    MPPR

    PPR

    )(v )(v

    w

    21

    21

    2

    1 100

    (1)

    )(H)(H)(H)(H

    )(H

    )(H)(H))((H)(H

    )(H

    )(v

    )(y)(H

    PRMP

    P

    PRMP

    P

    )(v)(w

    v

    12

    2

    12

    2

    2

    1 111001

    (2)

    )(H)(H)(H)(H)(H)(H)(H))((H)(v

    )(y)(H

    MPPRRPPM)(v)(w

    v

    21211

    2 1

    1

    11

    1

    002

    (3)

    Sistemul fiind liniar este valabil principiul superpoziiei, astfel c dependena intrare-ieire are forma:

    1 2w v 1 v 2y( ) H ( )w( ) H ( )v ( ) H ( )v ( ) . (4).

    Egalitatea (4) reprezint rezultatul problemei.

    Rezolvarea de mai sus se bazeaz pe metoda algebrei schemelor bloc. Rezultatul poate fi obinut cu acelai volum de munc folosind formula lui Mason i cu un volum de munc i mai redus, folosind calculul din aproape n aproape.

    5.5.2. n cazul discretizrii prin aproximare a sistemelor liniare se folosesc formulele

    (MT)

    (MDA)

    (MDR)

    1z

    1zh

    1z

    zh

    1z

    h

    s

    1

    21

    (1) (MDR metoda Euler sau metoda dreptunghiului retardat, MDA

    metoda dreptunghiului sau metoda dreptunghiului avansat, MT metoda Tustin sau metoda trapezului). Explicai cum se folosesc aceste formule i determinai modelul matematic n

    timp discret ( cu orientarea ua ) asociat prin metoda dreptunghiului avansat sistemului n

    timp continuu )t(a3)t(u2)t(u5 cu orientarea a u. Pasul de discretizare a timpului este h.

    Sistemul dat poate ndeplini funcia de filtru de ordinul I sau de regulator proporional cu filtrare.

    Soluie: Relaiile se folosesc pentru a asocia unui sistem n timp continuu cu funcia de transfer H(s) un sistem n timp discret cu funcia de transfer H(z). Calculul se reduce la

    efectuarea substituiei )(dinadecvataresiaexp

    s

    )s(H)z(H1

    1

    (2). Metoda de calcul poart numele

    de metoda substituiei.

    u1 y1=y

    H1

    H2 y2 u2=y

    u

    (+)

  • Sistemului dat i corespunde funcia de transfer

    s

    125

    s

    13

    2s5

    3)s(H

    , iar n conformitate cu

    formula de substituie (2) aplicat pentru a doua egalitate din (1) rezult

    1

    1z

    hz

    s

    1z5h25

    h3

    5z)h25(

    hz3

    1z

    hz25

    1z

    hz3

    )s(H)z(H

    .

    ntruct )z(u

    )z(a)z(H , avem

    1525

    3

    zh

    h

    )z(u

    )z(a , respectiv )z(uh)z(az)z(a)h( 3525 1 . n

    consecin modelul n timp discret este ]t[uh

    h]t[a

    h]t[a

    25

    31

    25

    5 . (3).

    Egalitatea (3) reprezint rezultatul problemei.

  • 5.6. PROGRAMAREA ORIENTAT PE OBIECTE

    5.6.1. ntr-o aplicaie de conducere de proces se utilizeaz senzori de tip analogic i optic. Toi senzorii trebuie resetai i calibrai, respectiv periodic citii. Citirea presupune i filtrare folosind valoarea anterioar citit, dar metodele de filtrare sunt diferite pentru senzori de tip diferit. Toate valorile citite sunt ntregi. Fiecare operaie de citire este specific senzorului respectiv, resetarea este comun tuturor tipurilor de senzori iar calibrarea este diferit pentru senzorii analogici i optici. Senzorii permit i o operaie identic de interogare a strii. Senzorii optici mai necesit o operaie specific de aducere la zero, alta dect reset, iar senzorii analogici necesit o operaie specific de selectare a canalului. Proiectai o ierarhie de clase (se cer doar declaraiile, nu i implementrile) care s modeleze fragmentul corespunztor de realitate, n cadrul aplicaiei software de conducere de proces. Sugerai care vor fi metodele publice i unde vor fi folosite acele funcii care nu sunt publice. Comentai fiecare variabil i fiecare funcie membr. Soluie: class senzor{

    int status; // starea

    protected:

    int val_citita; // valoarea citita (va fi setata de citire)

    int val_anterioara; // valoarea anterioara va fi transferata din val_citita

    // in timpul apelului metodei de citire

    int val_filtrata; // valoarea prelucrata prin filtrare (va fi returnata de get)

    virtual int filtru()=0;

    public:

    virtual void calibrare()=0; // calibrarea este o functie virtuala pura

    virtual void citire()=0; // citirea este si ea o functie virtuala pura

    void reset(); // operatia de reset

    int status(); // returneaza starea

    int get(); // returneaza valoarea filtrata

    };

    class senzor_analog public: senzor { // clasa specializata pentru senzori analogici

    int filtru(); // functia de filtrare nu va fi accesata de afara

    public:

    void calibrare(); // calibrarea specifica senzorului analogic

    void citire(); // aici se va apela si filtrul specific

    void select_canal(int ); // extensie pentru selectia canalului analogic

    };

    class senzor_optic public: senzor {

    int filtru();

    public:

    void calibrare(); // calibrarea specifica senzorului optic

    void citire(); // aici se va apela si filtrul specific

    void zero(); // extensie pentru operatia specifica de aducere la zero

    };

    5.6.2. Valorile citite ntr-un sistem de monitorizare trebuie stocate ntr-o stiv. Creai pentru aceasta un tipar stiv cu alocare dinamic i apoi generai o stiv de ntregi pentru stocarea acelor valori.

    Soluie: template class Cstack // tipar de stiva

    {

    T *m_p; // stiva propriu-zisa va fi aici

  • int m_nStored; // indicator varf stiva

    int m_nDepth; // dimensiunea temporara a stivei

    enum {GROW_BY=5}; // pasul de crestere a stivei

    public:

    CStack( ); // constructor

    virtual ~CStack(); // destructor

    int IsEmpty() const; // test stiva goala

    void Push(const T &item); // introducere in stiva

    T Pop(); // extragere din stiva

    };

    // Constructori

    template CStack::CStack()

    {

    m_p=0;

    m_nStored=0;

    m_nDepth=0;

    }

    template CStack::~ CStack()

    {

    delete []m_p;

    }

    // Operatii

    template int CStack::IsEmpty() const

    {

    return m_nStored==0;

    }

    template void CStack::Push(const T &item)

    {

    if(m_nStored==m_nDepth) // stiva alocata s-a umplut

    {

    T *p=new T[m_nDepth+GROW_BY]; // trebuie o stiva mai mai mare

    for (int i = 0; i

  • 5.7. PROIECTAREA CIRCUITELOR DIGITALE DEDICATE

    5.7.1. S se implementeze n VHDL, cu componente, entitatea Ansablu descris de schema hardware din figur care cuprinde dou componente: C1 inclus n biblioteca IEEE i NR cu funcia de numrtor nainte de 2 bii, sincron pe front cresctor al Clock-ului, cu Reset asincron prioritar, care va fi implementat cu procese.

    C1 NR

    A

    B

    C

    F D

    count

    2

    O1

    Rst

    Clk

    I3 I4 I5

    I1

    I2

    Ansamblu

    Soluie

    library IEEE, COMPASS_LIB;

    use IEEE.STD_LOGIC_1164.all;

    use COMPASS_LIB.COMPASS.all;

    entity ANSAMBLU is

    port (I1, I2, I3, I4, I5: in STD_LOGIC;

    O1: out STD_LOGIC_Vector(1 downto 0) );

    end ANSAMBLU;

    architecture A1 of ANSAMBLU is

    component C1

    port (A, B, C: in STD_LOGIC;

    F: out STD_LOGIC);

    end component;

    component NR

    port (D, Clk, Rst: in STD_LOGIC;

    Count: out STD_LOGIC_Vector(1 downto 0));

    end component;

    signal S: STD_LOGIC;

    begin

    Et1: C1 port map(I1, I2, I3, S);

    Et2: NR port map(S, I4, I5, O1);

    end A1;

    ------------------------------

    entity NR is

    port (D, Clk, Rst: in STD_LOGIC;

    Count: out STD_LOGIC_Vector(1 downto 0));

    end NR;

    architecture V1 of NR is

    Count := 00; begin

    process (Clk, Rst)

  • begin

    if Rst = '0' then

    Count

  • when S0 => Y
  • 5.8. TEORIA SISTEMELOR II

    5.8.1. Se consider sistemului de reglare cu schema bloc din figur. S se determine condiia ca sistemul s fie asimptotic stabil. 0RK este amplificarea regulatorului iar 0IT timpul

    integrator.

    Soluie: Rezolvarea problemei se bazeaz pe aplicarea criteriului Hurwitz. Se parcurg urmtorii pai: i) Determinarea polinomului caracteristic al sistemului pe baza funciei de transfer; ii) Determinarea condiiilor de stabilitate asimptotic pe baza aplicrii criteriului lui Hurwitz..

    i) Sistemul are ordinul n=3. Pentru orientarea yw funcia de transfer a sistemului este

    RRIII

    RIR

    I

    R

    I

    R

    KsKTsTsT

    KsTK

    sssTK

    sssTK

    s10)101(25

    )(10...

    125

    10)

    11(1

    125

    10)

    11(

    )(23

    2

    2

    . Pentru

    analiza stabilitii considerm polinomul caracteristic adus n form monic:

    I

    RR

    RRIII

    T

    KsKsss

    KsKTsTsTs

    2)101(2.04.0)(

    10)101(25)(

    23

    23

    ii) Deoarece prin ipotez 0RK , 0IT rezult c toi coeficienii )s( sunt strict pozitivi.

    Deci prima condiie a criteriului Hurwitz este ndeplinit. Determinantul Hurwitz este

    I

    R

    R

    I

    R

    T

    K.

    )K(.T

    K.

    2400

    0101201

    0240

    3 . n consecin,

    040401 .. ,

    )K(.T

    K.

    R

    I

    R

    101201

    240

    2

    I

    RR

    T

    K)K(.

    2101080 > 0 (1)

    23

    2

    I

    R

    T

    K.

    Ca urmare condiia de stabilitate asimptotic a sistemului este 2 >0.

    Dezvoltnd rezult:

    )K(.

    KT

    T

    K)K(.

    T

    K)K(.

    R

    RI

    I

    RR

    I

    RR

    101080

    21010800

    2101080

    = >

    R

    RI

    K101

    K25T

    .

    Relaia ncadrat reprezint rezultatul cerut.

    )1

    1(sT

    KI

    R 125

    102 ss

    -

    w a c y

    RG-PI Procesul condus

  • 5.8.2. Enunai criteriul de stabilitate Jury, dnd explicaiile necesare construirii schemei Jury, i utilizai enunul pentru a analiza stabilitatea sistemului n timp discret cu orientarea

    uy:

    ]t[x021]t[y

    ]t[u

    0

    1

    0

    ]t[x

    5.020

    5.011

    201

    ]1t[x .

    Soluie: Se consider un sistem liniar n timp discret, invariant n timp, cu polinomul

    caracteristic nn

    nn azazazaz

    1

    1

    10 ...)( (1). Cu coeficienii din (1) se construiete

    o schema de calcul numit schema Jury. Ea este alctuit din n-1 perechi de linii. In cadrul fiecrei perechi, a doua linie din pereche o reproduce pe prima prin parcurgere n sens invers.

    Elementul general al schemei l notam cu klj ( k indicele liniei, l- indicele coloanei ). n

    stnga barei din schem apare coeficientul Jury. Ei sunt notai cu ib2 , i reprezentnd numrul

    de ordine al perechii de linii.

    Coeficienii Jury ib2 se calculeaz cu formula 1,2

    1,12

    2

    li

    li

    ij

    jb . Aplicarea formulei este sugerat

    n schema urmtoare n care cele 2 linii alctuiesc perechea i:

    - 1,12 ij

    ib2 1,2ij .

    Prima linie a primei perechi se alctuiete din coeficienii polinomului caracteristic n ordinea

    021 ,...,, aaaa nnn (de la gradul 0 la gradul n).

    ncepnd cu a doua pereche de linii, prima linie a perechii se completeaz pe baza perechii

    anterioare folosind formula: 1,221,12,12 liilili jbjj . Fiecare nou pereche de linii are o

    coloan mai puin dect perechea precedent. Criteriul stabilitii Jury are urmtorul enun: Sistemul liniar in timp discret cu polinomul caracteristic (1) este asimptotic stabil dac sunt ndeplinite urmtoarele condiii:

    i) 0)1(

    ii) 0)1()1( n

    iii) 12 ib pentru 1n;1i (toi coeficienii Jury trebuie s fie subunitari n modul).

    Pentru aplicaia dat la nceput calculm polinomul caracteristic, apoi analizm succesiv dac cele trei condiii din enunul criteriului Jury sunt ndeplinite:

    5.4zz5.1z5z)5.0z)(1z2z(

    )1z(4)5.0z()1z(

    5.0z20

    5.01z1

    201z

    )z(

    232

    2

    i) 05.415.11)1(

    ii) 0)5.415.11()1()1( 3 => sistemul este instabil.

    Nu mai este necesar s construim schema Jury. Rezultatul rezolvrii problemei este: sistemul dat este instabil.

    5.8.3. Sistemele descrise prin ecuaiile Fam i MJ modeleaz matematic mecanisme de translaie, respectiv de rotaie, fr frecare. Semnificaia notaiilor este urmtoarea: m masa mecanismului de translaie, F fora rezultant care acioneaz asupra mecanismului, a - acceleraia imprimat de fora F, J momentul de inerie al mecanismului de rotaie, M

    Linia 1 a perechii i

    Linia 2 a perechii i

  • momentul exterior care se exercit asupra mecanismului, - acceleraia unghiular

    imprimat de momentul M. Fie p poziia momentan a mecanismului de translaie i

    poziia mecanismului de rotaie. n ipoteza c sistemele au orientrile F p, respectiv M , se cere: i) S se calculeze funciile de transfer ale celor dou sisteme; ii) Ecuaiile de stare ale celor dou sisteme. Soluie: i) Fie v viteza mecanismului de translaie. Atunci avem:

    pv , va , iar modelul dat devine Fpm

    Pentru a calcula funcia de transfer trecem egalitatea n domeniul operaional:

    )s(F)s(psmFpm 2

    ntruct, prin definiie )s(F

    )s(p)s(H , rezult c sistemul are funcia de transfer

    2

    1

    sm)s(H

    .

    Fie viteza unghiular a mecanismului de rotaie. Atunci avem: , , iar modelul dat devine J

    Pentru a calcula funcia de transfer trecem egalitatea n domeniul operaional:

    )s(M)s(sJJ 2

    ntruct, prin definiie )s(M

    )s()s(H

    , rezult c sistemul are funcia de transfer

    2

    1

    sJ)s(H

    .

    Relaiile ncadrate reprezint funciile de transfer ale celor dou sisteme. ii) Ca variabile de stare ale sistemului de translaie se adopt poziia p i viteza v. Ele caracterizeaz procese de acumulare de energie potenial i de energie cinetic. Ca urmare, o

    prim ecuaie de stare este vp . A doua ecuaie de stare se obine din Fam i va .

    Rezult Fm

    v1

    . Matriceal, avem:

    Fm

    v

    p

    v

    p

    10

    00

    10

    .

    Ca variabile de stare ale sistemului de rotaie se adopt poziia unghiular i viteza

    unghiular . Ele caracterizeaz procese de acumulare de energie potenial i de energie cinetic. Ca urmare, o prim ecuaie de stare este . A doua ecuaie de stare se obine din

    MJ i . Rezult MJ

    1 . Matriceal, avem:

    MJ

    10

    00

    10

    .

    Relaiile ncadrate reprezint ecuaiile de stare ale celor dou sisteme.

  • 5.9. BAZE DE DATE

    5.9.1. Se consider dou tabele (ale unei baze de date Oracle), cu numele PERSONAL (avnd coloanele CNP, NUME si SALAR), respectiv CONTABILITATE (avnd coloanele

    DATA_ACTUALIZARE, SALAR_MEDIU). S se scrie comenzile SQL pentru crearea celor dou tabele, permind stocarea de date referitoare la categoriile de informaii precizate prin numele coloanelor (CNP, NUME, SALAR, DATA_ACTUALIZARE, SALAR_MEDIU). Se

    vor prevedea i constrngerile necesare pentru asigurarea integritii / coerenei logice a datelor / informaiilor anterior referite, considerate obligatorii (tip, dimensiuni, plaja valori, constrngeri).

    Se cere s se scrie secvena de cod PL/SQL implementnd un trigger (declanator) care, la orice operaie de modificare/actualizare a coninutului/datelor tabelei PERSONAL, calculeaz valoarea medie de pe coloana SALAR (din PERSONAL), salvnd-o n tabela

    CONTABILITATE (in coloana SALAR_MEDIU), mpreun cu data curent calendaristic aferenta operaiei (n coloana DATA_ACTUALIZARE). Soluie: CREATE TABLE PERSONAL (

    CNP char(13) primary key,

    NUME varchar(20) NOT NULL,

    SALAR int CHECK (SALAR>0));

    CREATE TABLE CONTABILITATE (

    DATA_ACTUALIZARE date default SYSDATE,

    SALAR_MEDIU number);

    CREATE or REPLACE trigger declansator

    AFTER insert or update or delete on PERSONAL

    DECLARE

    sal number;

    BEGIN

    SELECT AVG(salar) into sal from PERSONAL;

    INSERT into CONTABILITATE (Salar_mediu) values(sal);

    END;

    /

    Soluie 2 obligatorie dac n tabela CONTABILITATE nu este prevzut constrngerea de dat curent DEFAULT SYSDATE: CREATE or REPLACE trigger declansator

    AFTER insert or update or delete on PERSONAL

    DECLARE

    sal number;

    BEGIN

    SELECT AVG(salar) into sal from PERSONAL;

    INSERT into CONTABILITATE values(sysdate, sal);

    END;

    /

    5.9.2. Scriei o comand SQL pentru crearea unei tabele PERSONAL permind stocarea de date referitoare la urmtoarele categorii de informaii: NR_MATRICOL, NUME, PRENUME, DATA_NATERII, SALAR_BAZA. Se vor prevedea i constrngerile necesare pentru asigurarea integritii / coerenei logice a datelor / informaiilor anterior referite, considerate obligatorii (tip, dimensiuni, plaja valori, constrngeri). Scriei comenzile SQL pentru adugarea a dou noi linii (cu orice date valorice). Scriei comenzile SQL pentru tergerea coninutului tabelei, respectiv tergerea tabelei.

  • Soluie: CREATE TABLE PERSONAL

    (NR_MATRICOL char(6) primary key,

    NUME varchar(20) NOT NULL,

    PRENUME varchar(20) NOT NULL,

    DATA_NAST date NOT NULL,

    SALAR_BAZA INT CHECK (SALAR_BAZA >0 AND SALAR_BAZA0)

  • 5.10. MEDII I TEHNOLOGII DE PROGRAMARE

    5.10.1. Scriei n C# sau Visual Basic .NET dou funcii care s calculeze, pe baza CNP-ului unei persoane, data de natere i vrsta acesteia. ' Visual Basic Private Function DataNasterii(ByVal sCNP As String) As Date Private Function Varsta(ByVal sCNP As String) As Integer

    // C# private DateTime DataNasterii(string cnp); private int Varsta(string cnp);

    Exemplu: DataNasterii(1900228350001) va returna 28.02.1990, iar Varsta(1900228350001) va returna 24 (dac anul curent este 2014).

    Soluie: ' Visual Basic Private Function DataNasterii(ByVal sCNP As String) As Date Dim an, luna, zi As Integer an = 1900 + Convert.ToInt32(sCNP.Substring(1, 2)) luna = Convert.ToInt32(sCNP.Substring(3, 2)) zi = Convert.ToInt32(sCNP.Substring(5, 2)) Return New Date(an, luna, zi) End Function Private Function Varsta(ByVal sCNP As String) As Integer Return DateDiff(DateInterval.Year, DataNasterii(sCNP), Today) End Function

    //C# private DateTime DataNasterii(string cnp) { DateTime dn; int an = Convert.ToInt32("19" + cnp.Substring(1, 2)); int luna = Convert.ToInt32(cnp.Substring(3, 2)); int zi = Convert.ToInt32(cnp.Substring(5, 2)); if (DateTime.TryParse(zi + "/" + luna + "/" + an, out dn)) return (dn); return DateTime.MinValue; } private int Varsta(string cnp) { long ticks; long ticks0 = DataNasterii(cnp).Ticks; if (ticks0 > 0) { TimeSpan ts = new TimeSpan(ticks0); ticks = DateTime.Now.Ticks - ticks0; DateTime v = new DateTime(ticks); return v.Year - 1; } return 0; }

    5.10.2. Secvena de cod de mai jos (Visual Basic sau C#) are ca efect trasarea ntr-un control PictureBox1 a unei linii ntre coordonatele (x1,y1) i (x2,y2). Modificai secvena pentru a se desena, n interiorul aceluiai control, un trapez isoscel avnd baza mare latura inferioar a dreptunghiului format de cele dou perechi de coordonate, iar baza mic o treime din latura

    superioar a aceluiai dreptunghi. Se presupune c x1

  • Soluie: ' Visual Basic Dim myGraph As System.Drawing.Graphics myGraph = PictureBox1.CreateGraphics() myGraph.DrawLine(Pens.Black, x1, y2, x2, y2) myGraph.DrawLine(Pens.Black, x2, y2, (CInt(x2-(x2- x1)/3)), y1) myGraph.DrawLine(Pens.Black, (CInt(x2-(x2-x1)/3)), y1, (CInt(x1+(x2-x1)/3)), y1) myGraph.DrawLine(Pens.Black, (CInt(x1+(x2-x1)/3)), y1, x1, y2)

    // C# System.Drawing.Graphics myGraph; myGraph = pictureBox1.CreateGraphics(); myGraph.DrawLine(Pens.Black, x1, y2, x2, y2); myGraph.DrawLine(Pens.Black, x2, y2, (Convert.ToInt32(x2 - (x2 - x1) / 3)), y1); myGraph.DrawLine(Pens.Black, (Convert.ToInt32(x2 - (x2 - x1) / 3)), y1, (Convert.ToInt32(x1 + (x2 - x1) / 3)), y1); myGraph.DrawLine(Pens.Black, (Convert.ToInt32(x1 + (x2 - x1) / 3)), y1, x1, y2);

    5.10.3. Ce va afia la ieire secvena de cod (Visual Basic sau C#) de mai jos? ' Visual Basic Dim i, j As Integer For i = 1 To 5 For j = 5 To 1 Step -1 If (j - i) < 0 Then Continue For Console.Write(j + i) Next Next

    // C# int i = 0; int j = 0; for (i = 1; i = 1; j += -1) { if ((j - i) < 0) break; Console.Write(j + i); } }

    Soluie: ' Visual Basic 6543276548769810

    // C# 6543276548769810

  • 5.11. COMUNICAII DE DATE

    5.11.1. Prezentai i explicai funcionarea transceiverului pe magistrala CAN folosind schema din figur.

    Soluie: Magistrala CAN const din dou linii, notate CANH (Can High line) i CANL (CAN Low line), la care se adaug masa. Transmisia pe aceasta magistrala este de tip diferenial. n figur este reprezentat un transceiver de CAN. Dac la intrarea driverului semnalul TxD are valoarea 1 logic (starea 1), ambele tranzistoare vor fi blocate i cele dou linii se vor afla la potenialul 0,5Vcc. Dac se comand valoarea 0 logic (starea 0), ambele tranzistoare vor fi deschise i ntre cele dou linii apare o diferen de potenial, ce va fi detectat de receiver. Starea 0 este numit dominant (ctig), iar starea 1 este denumit recesiv (pierde). Aceast fapt este folosit pentru arbitrarea magistralei. Transceiverele de mare vitez (1Mbps) snt diferite de cele de mic vitez (125Kbps). Ultimele snt tolerante la defecte. Cderea uneia dintre cele dou linii, prin ntreruperea ei sau prin scurtcircuitarea la mas sau la Vcc nu duce la cderea total a comunicaiei. Caracterul diferenial al transmisiei i filtrele ncorporate n receivere duc la un grad sczul de interferen electromagnetic i o bun imunitate la zgomotul de mod comun (cel care se manifest identic pe ambele linii, raportat la mas.)

    5.11.2. Prezentai comparativ metodele de codare a informaiei de tip NRZ si AMI pentru transmiterea datelor. Codai prin cele dou metode secvena 101100. Soluie: Metoda NRZ (Non Return to Zero). Aceasta este codarea "natural", adic bitul 0 se codeaz printr-un palier sczut de tensiune, iar bitul 1 printr-un palier ridicat. Numim celul de bit durata alocat transmiterii unui bit de informaie. n sistemul NRZ nivelul de tensiune este eantionat la mijlocul celulei de bit, pentru a determina valoarea numeric binar a semnalului. Dezavantajul metodei este c sincronizarea de bit este o problem dificil de rezolvat.

  • Metoda AMI (Alternate Mark Inversion). Metoda folosete trei nivele de tensiune: pozitiv, zero i negativ. Bitul 0 este codificat prin absena unui impuls n celula de bit, iar bitul 1 prin prezena impulsului. Codarea prin impuls, fa de palier, este mai fiabil n raport cu perturbaiile, dar dubleaz banda de frecven necesar. Avantajul alternrii este c nivelul mediu de tensiune pe canal este constant, ceea ce simplific situaia din punctul de vedere al perturbaiilor legate de deriva de nul pe firul de mas.

    5.11.3. Prezentai echipamentele componente ale unei celule de telefonie mobil, funcionarea acesteia i modalitile de comunicare ntre celul i central. Soluie Celula are urmtoarele componente

    BTS (Base Transceiver Station Staia de baz de emisie/recepie) const din antena i echipamentul radio de emisie/recepie care definete, n funcie de puterea sa, aria de cuprindere a celulei. Acest echipament conecteaz terminalul mobil la centrala de telefonie celulara;

    BSC (Base Station Controler Controlerul staiei de baz). Conine partea digital a echipamentului celulei. Aceast component translateaz semnalul de voce de 13 Kbit/sec n standardul PCM de 64Kbit/sec i administreaz resursele radio ale BTS.

    n funcie de tipul celulei, rural sau metropolitan, i de alte condiii, BTS se poate afla n aceeai construcie cu BSC sau la distan de acesta. n concentrrile urbane, cu trafic foarte intens, celulele au dimensiuni foarte mici (sute de metri) i se pot lega mai multe transceivere la un controler.

    Antena servete doar pentru legtura ntre terminale i BTS. Legtura ntre BTS i centrala de comutare se face prin canalele specifice telefoniei:

    circuite analogice pe 2 fire. Situaia este specific celulelor foarte mici, care nici mcar nu se leag la o central, ci direct la o linie telefonic comutat din PSTN (Public Switched Telephone Network);

    circuite digitale pe cablu de cupru. Este cel mai rspndit mod de comunicare ntre celule i centrale i se realizeaz pe lungimi ce pot varia ntre interiorul unei cldiri i distane de ordinul kilometrilor;

    fibra optic, permite legturi la distane mari, pn la 40 Km fr a folosi repetoare;

    microunde.

    Codarea NRZ

    0 0 1 1 0 1

    1 0 1 1 0 0

    Codarea AMI

  • 5.12. SISTEME INCORPORATE

    5.12.1. S se scrie un program n limbaj de asamblare pentru un microcontroler 8051, care s accepte cereri de ntreruperi externe pe liniile /INT0 si /INT1. ntreruperile sunt active pe front cztor. n rutina de tratare a ntreruperii /INT0 se va seta bitul 0 al portului P1 (P1.0), iar n rutina de tratare a ntreruperii pentru /INT1 se va reseta bitul P1.0.

    Programul principal va rula n bucl infinita, dup ce s-a realizat programarea sistemului de ntreruperi.

    Soluie Programul corespunztor este: ORG 0h

    LJMP PP ;salt la PP

    ORG 03h ;adresa de start a rutinei de tratare a intreruperii INT0

    RUT_0: SETB P1.0 ;setare bit P1.0

    RETI ;revenire din rutina de tratare a intreruperii INT0

    ORG 13h ;adresa de start a rutinei de tratare a intreruperii INT1

    RUT_1: CLR P1.0 ;resetare bit P1.0

    RETI ;revenire din rutina de tratare a intreruperii INT1

    ORG 100h ;adresa de start a programului principal

    PP: CLR IE.7 ;invalidare globala a sistemului de intreruperi

    SETB IE.0 ;validare intrerupere INT0

    SETB TCON.0 ;activare front cazator pentru INT0

    SETB IE.2 ;validare intrerupere INT1

    SETB TCON.2 ;activare front cazator pentru INT1

    SETB IE.7 ;validarea globala a sistemului de intreruperi

    SJMP $ ;bucla infinita

    5.12.2. S se scrie un program n limbaj de asamblare pentru un microcontroler 8051, care s asigure comunicaia seriala n ecou (data recepionat este transmisa napoi) cu un partener de dialog, prin intermediul sistemului UART integrat, la viteza de 9600 bauds/sec, tiind ca frecventa oscilatorului este de 12 MHz. Programul trebuie conceput astfel nct, microcontrolerul s gestioneze recepia prin intermediul ntreruperii specifice sistemului de comunicaie serial. Fiecare octet recepionat la un moment dat, va fi depus n memoria de date extern (MDX), la adresa 1000h.

    Soluie Formula de calcul a constantei de timp necesare programarii timerului T1 (generatorul de

    baud-rate) este:

    ratebaudTH

    fOSC

    SMOD

    _384256)1(

    2

    Pentru o viteza de transfer de 12 MHz constanta de timp este:

    25332563686400

    12000000256

    9600384

    10122256)1(

    60

    TH

    exprimat in hexazecimal: (TH1) = FDh

    Structura cuvantului de comanda TMOD pentru programarea timerului T1 in modul 2 este:

    D7 D6 D5 D4 D3 D2 D1 D0

    0 0 1 0 0 0 0 0

    Exprimat in hexazecimal: (TMOD) = 20h

    Programul corespunzator este:

  • ORG 0h

    LJMP PP ;salt la PP

    ORG 23h ;adresa de start a rutinei de tratare a intreruperii ES

    RUT_SER: CLR IE.4 ;invalideaza intreruperile ES

    MOV A,SBUF ;transfera in acumulator octetul receptionat

    MOVX @DPTR,A ;transfera in MDX la adresa 1000h caracterul

    receptionat

    CLR SCON.0 ;resetare fanion RI

    MOV SBUF,A ;trensmite inapoi octetul receptionat

    JNB SCON.1 ;asteapta incheierea transferului prin testarea

    fanionului TI

    CLR SCON.1 ;resetare fanion TI

    SETB IE.4 ;valideaza cererile de intrerupere provenite de la

    ES

    RETI ;revenire din rutina de tratare a intreruperii ES

    ORG

    100h

    ;adresa de start a programului principal

    PP: CLR IE.7 ;invalidare globala a sistemului de intreruperi

    MOV TMOD,#20h ;transfera cuvantul de comanda pentru timerul 1

    MOV TL1,#0FDh ;transfera constanta de timp in TL1

    MOV TH1,#0FDh ;transfera constanta de timp in TH1

    SETB SCON.6 ;pozitioneaza pe 1 bitul 6 din registrul SCON

    (Modul 1)

    CLR SCON.7 ;pozitioneaza pe 0 bitul 7 din registrul SCON

    (Modul 1)

    SETB SCON.4 ;validare receptie

    SETB TCON.4 ;pornire soft timer T1

    SETB IE.4 ;validare intreruperi de la sistemul de comunicatie

    seriala

    MOV DPTR,#1000h ;incarcare in DPTR a adresei din MDX unde se

    depune octetul ;receptionat

    SETB IE.7 ;validarea globala a sistemului de intreruperi

    SJMP $ ;bucla infinita

    5.12.3. Pentru un sistem cu microcontroler 8051, care dispune de:

    Memorie program extern de 16 Koct, implementat cu circuite de capacitate de 4Kx8;

    Memorie de date extern de 32 Koct, implementat cu circuite de capacitate de 8Kx8, se cere:

    i) S se prezinte harta corespunztoare memoriei program i harta corespunztoare memoriei de date extern, n cadrul sistemului considerat. ii) S se deseneze schema de implementare a decodificatorul de adrese, pentru obtinerea semnalelor de chip_select (/CSx semnale de chip select 0 active). Circuitul decodificator utilizat este 74LS138 (tabela de adevar si schema bloc a circuitului 74LS138 sunt prezentate

    in figura de mai jos).

  • Soluie: i) Harta memoriei

    a) Memoria program Numrul de circuite necesare: N = 16/4 = 4 circuite Linii de adresa utilizate pentru selectia locatiilor de memorie din circuite: 12 (A0...A11)

    Linii de adresa utilizate la generarea semnalelor de chip select: 4 (A12...A15)

    Harta memoriei program este sintetizata in tabelul de mai jos:

    A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000h

    0FFFh

    /CS_E0 . . . . . . . . . . . .

    1 1 1 1 1 1 1 1 1 1 1 1

    0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1000h

    1FFFh

    /CS_E1 . . . . . . . . . . . .

    1 1 1 1 1 1 1 1 1 1 1 1

    0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 2000h

    2FFFh

    /CS_E2 . . . . . . . . . . . .

    1 1 1 1 1 1 1 1 1 1 1 1

    0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 3000h

    3FFFh

    /CS_E3 . . . . . . . . . . . .

    1 1 1 1 1 1 1 1 1 1 1 1

    b) Memoria de date externa Numarul de circuite necesare: N = 32/8 = 4 circuite

    Linii de adresa utilizate pentru selectia locatiilor de memorie din circuite: 13 (A0...A12)

    Linii de adresa utilizate la generarea semnalelor de chip select: 3 (A13...A15)

    Harta memoriei program este sintetizata in tabelul de mai jos:

    A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000h

    1FFFh

    /CS_X0 . . . . . . . . . . . . .

    1 1 1 1 1 1 1 1 1 1 1 1 1

    0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 2000h

    3FFFh

    /CS_X1 . . . . . . . . . . . . .

    1 1 1 1 1 1 1 1 1 1 1 1 1

    0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4000h

    5FFFh

    /CS_X2 . . . . . . . . . . . . .

    1 1 1 1 1 1 1 1 1 1 1 1 1

    0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 6000h

    7FFFh

    /CS_X3 . . . . . . . . . . . . .

    1 1 1 1 1 1 1 1 1 1 1 1 1

    ii) Implementarea decodificatoarelor de adrese

    a) Pentru memoria program

  • b) Pentru memoria de date externa

  • 5.13. SISTEME DE OPERARE

    5.13.1. Realizai un program n C ce funcioneaz pe baza urmtorului scenariu: Un proces P afieaz repetitiv cifre de la 0 la 9. Afiarea va ncepe cu cifra 0 (cifra va fi afiat n bucl, de cte ori e posibil ntr-o secund), iar la fiecare secund va incrementa cifra afiat. Procesul de afiare se va ncheia cnd se ajunge la 10 i va afia numrul total de cifre tiprite. Soluie:

    #include

    #include

    #include

    #include

    void handler(int sig);

    int number, counter;

    int main(int argc, char** argv){

    number = 0;

    counter = 0;

    signal(SIGALRM, &handler);

    alarm(1);

    while(number < 10)

    {

    printf("%d", number);

    counter++;

    }

    printf("Total:%d", counter);

    return 0;

    }

    void handler(int sig){

    number++;

    alarm(1);

    }

    5.13.2. Realizai un program C ce funcioneaz pe baza urmtorului scenariu: se va crea un proces printe P i un proces fiu F. Procesul P va citi coninutul unui fiier primit ca i argument i l va trimite printr-un pipe procesului F. F va numra caracterele primite ntr-un contor pe care l va afisa n terminal.

    Soluie:

    #include

    #include

    #include

    #include

    int main(int argc, char**argv){

    int ppf[2];//pipes

    int fd;//file descriptor

    char buffer[2];

    pipe(ppf);

  • if(fork()){

    //close unused pipe ends

    close(ppf[0]);

    //open file

    fd = open(argv[1], O_RDONLY);

    if(fd == -1){

    perror("File read error");

    _exit(1);

    }

    int n;

    while((n = read(fd,buffer, strlen(buffer)+1)) != 0){

    write(ppf[1], buffer, n);

    }

    close(ppf[1]);

    int rc;

    wait(&rc);

    }else{

    //close pipe ends

    close(ppf[1]);

    int contor = 0,n;

    while((n = read(ppf[0],buffer, strlen(buffer)+1)) != 0){

    contor += n;

    }

    printf("\nContor:%d\n",contor);

    }

    return 0;

    }

    5.13.3. Realizai un program shell script ce va primi ca i argument un nume de director D i un cuvnt C. Programul va cuta cuvntul C parcurgnd recursiv directorul D, iar pentru fiecare fiier ntlnit care conine cuvntul C va afia calea relativ a acestuia. Soluie:

    #!/bin/sh

    word=$2

    lst(){

    for i in $1/*

    do

    if [ -d $i ]

    then

    lst $i

    elif [ -f $i ]

    then

    count=`grep $word $i | wc -l`

    if [ $count -gt 0 ]

  • then

    echo $i

    fi

    fi

    done

    }

    lst $1

  • 5.14. SECURITATEA INFORMATIEI

    5.14.1. Precizai succesiunea operaiilor pentru obinerea cheilor publice utiliznd o autoritate pentru distribuia cheilor publice (v. figura de mai jos)

    Distribuia cheilor folosind o autoritate pentru chei publice

    Soluie Fiecare participant cunoate cheia public a autoritii, care va fi folosit pentru autentificarea prilor participante. Pentru a primi o cheie se urmeaz paii descrii n continuare:

    (1) A trimite un mesaj datat (mesajul include Time1) autoritii coninnd o cerere (Request) pentru cheia public curent a lui B. [mesajul (1)] (2) Autoritatea rspunde cu un mesaj [mesajul (2)] criptat cu cheia sa privat, mesaj pe care A l poate decripta fiind n posesia cheii publice a autoritii. Astfel A poate fi sigur c mesajul primit este autentic, mesajul fiind criptat cu cheia privat a autoritii KRauth. Mesajul include urmtoarele: (3) Cheia public a lui B, KUb. (4) Cererea original pentru ca A s determine dac aceasta nu a fost modificat. (5) Datarea mesajului, astfel A poate determina dac mesajul primit nu este un mesaj vechi de la autoritate, coninnd o cheie diferit de cheia curent a lui B. (6) A salveaz cheia public a lui B i i transmite acestuia un mesaj care conine un identificator IDA i un anun N1, care este folosit pentru identificarea tranzaciei. [mesajul (3)] (7) B recepioneaz cheia public a lui A de la autoritate n aceeai manier cum A a recepionat cheia lui B. [mesajele (4) si (5)] (8) B transmite un mesaj lui A criptat cu cheia publica a lui A si care contine un raspuns N2 la anuntul N1 [mesajul (6)]

    (9) In final A ii retransmite mesajul N2 inapoi lui B, criptat cu cheia publica a lui B. Astfel A si B au ajuns in posesia cheilor publice ale celuilalt si s-au anuntat unul pe altul

    despre acest lucru. [mesajul (7)]

    5.14.2. Aplicai transformarea ShiftRows( ), potrivit figurii de mai jos, din algoritmul de criptare AES urmtorului tablou de stare:

    AB90F1A7

    1523A57B

    1225E377

    1B3F32A2

    S

  • Transformarea ShiftRows( )

    Soluie: n aceast transformare, octeii din liniile tabloului de stare sunt rotii spre stnga astfel: cu 0 octei pentru linia 1, cu 1 octet pentru linia 2, cu 2 octei pentru linia 3 i respectiv cu 3 octei pentru linia 4, rezultand tabloul de stare S.

    90F1A7AB

    A57B1523

    771225E3

    1B3F32A2

    'S

    5.14.3. Aplicai transformarea InvSubBytes( ) din algoritmul de decriptare AES, bazat pe substitutia S inversa din figur, urmtorului tablou de stare:

    AB90F1A7

    1523A57B

    1225E377

    1B3F32A2

    S

    Descrierea substituiei octetului xy (in hexazecimal) utiliznd cutia invers S

  • Soluie: Pentru fiecare byte se obtine x (prima cifra hexa) si y (a doua cifra hexa) si se utilizeaza figura

    data pentru a obtine valoarea noua a octetului respectiv. De ex. Pentru S0,0=2A, x=2, y=A,

    rezultand S0,0=95. Astfel rezulta:

    E096CBBD

    F2324620

    392C1D02

    56E71A95

    'S

  • 5.15. REELE DE CALCULATORE

    5.15.1. Se consider adresa IP v4 172.16.0.150 avnd masca 255.255.255.192. Se cere: a) Adresa reelei, respectiv adresa de broadcast a reelei din care face parte adresa IP; b) Adresa subreelei, respectiv adresa de broadcast a subreelei din care face parte adresa IP;

    c) Numrul de hosturi din subreeaua din care face parte adresa IP; d) Numrul de subreele definite de masca adresei IP dat. Soluie: a) Adresa IP definete o reea de clasa B. Rezult c masca reelei este 255.255.0.0 . Fcnd operaiile pe bii vom avea:

    10101100.00010000.00000000.10010110 Adresa IP

    11111111 .11111111 .00000000.00000000 Masc reea --------------------------------------------------

    10101100.00010000.00000000.00000000 Adresa reelei --------------------------------------------------

    10101100.00010000.11111111 .11111111 Adresa de broadcast a reelei

    Adresa reelei este 172.16.0.0 Adresa de broadcast a reelei este 172.16.255.255

    b) Fcnd operaiile pe bii vom avea:

    10101100.00010000.00000000.10010110 Adresa IP

    11111111 .11111111 .11111111 .11000000 Masca subreea --------------------------------------------------

    10101100.00010000.00000000.10000000 Adresa subreelei --------------------------------------------------

    10101100.00010000.00000000.10111111 Adresa de broadcast a subreelei

    Adresa subreelei este 172.16.0.128 Adresa de broadcast a subreelei este 172.16.0.191 c) Numrul de hosturi din subreea: NH = 26-2 = 62 hosturi d) Numrul de subreele: NSR = 210-2 = 1022 subreele

    5.15.2. Se consider adresa IP v4 192.168.10.125/28. Se cere: a) Adresa reelei, respectiv adresa de broadcast a reelei definite de perechea adres IP/ masc reea. b) Numrul de hosturi din reeaua determinat la punctul a). Soluie: a) Fcnd operaiile pe bii vom avea:

    11000000.10101000.00001010.01111101 Adresa IP

    11111111 .11111111 .11111111 .11110000 Masca reea --------------------------------------------------

    11000000.10101000.00001010.01110000 Adresa de reea --------------------------------------------------

    11000000.10101000.00001010.01111111 Adresa de broadcast a reelei

    Adresa reelei este 192.168.10.112. Adresa de broadcast a reelei este 192.168.10.127.

  • b) Numrul de hosturi din subreea: NH = 24-2 = 14.