csc proiect victor bojica ilie radu

Upload: petrisor-iustin

Post on 05-Jul-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/16/2019 CSC Proiect Victor Bojica Ilie Radu

    1/24

    Universitatea Tehnică “Gheorghe Asachi” din IaşiFacultatea de Automatică şi CalculatoareDomeniul: Ingineria sistemelor Specializarea: Automatică şi Informatică AplicatăAnul universitar 2015 / 2016

    Proiect

    Comunicaţii în sisteme de conducere

    Tema 3

    tudenti! Gru"a!

    #o$ica %ictor &'(

    Ilie )adu*Iulian &'(

  • 8/16/2019 CSC Proiect Victor Bojica Ilie Radu

    2/24

    CUPRINS 

    1  !ema proiectului"2 #rezentarea resurselor $ar%&are si soft&are folosite'" #rotocolul (aster)Slave10' #rogramul principal125.  #regătirea mesa*elor pentru transmisie156 !ransmisia mesa*elor 1++ ,ecep-ia mesa*elor . %escriere sc$ema logică şi implementare1

  • 8/16/2019 CSC Proiect Victor Bojica Ilie Radu

    3/24

    &+ Tema "roiectului

      Folosind microsistemul MicroPac 515C să se implementeze un protocol decomunicaţie serială de tip master-slave, având următoarele caracteristici:

    1 Port COM !"#-$%5&

    Parametricomunicaţie

    115'', (, ), 1

    Formatul Mesa*ului +dresă nod destinaţieCod uncţie: ' sau 1/estinatia sau sursa mesa*ului, după caz0unime date/ateCod detectare erori 2 0"C !3&

    $ Codi4care mesa* +#C 6e7

    Formatul mesajelor:

    +dresadestinatie

    Coduncţie

    #ursă !master&/estinaţie !slave&

    0unime /ate #uma decontrol

    1 octet 1 octet 1 octet 1 octet 0unime 1 octet

    Obs.:

    8 Câmpul adresă destinaţie va conţine adresa nodului care va recepţionamesa*ul.8 Câmpul cod funcţie poate 4, după caz:o ' 2 mesa* de interoare !lunime date 9 '& 2 transmis de master către unnod slave sau deslave către master, n lipsa altui mesa* util

  • 8/16/2019 CSC Proiect Victor Bojica Ilie Radu

    4/24

    o 1 2 mesa* de date 2 mesa* care conţine un te7t +#C8 Câmpul sursă/destinaţie va indica:o pentru un mesa* de tip 1 transmis de nodul master 2 sursa mesa*uluio pentru un mesa* de tip 1 transmis de un nod slave 2 destinaţia 4nală amesa*ului

    8 Câmpul lungime reprezintă numărul de octeţi al câmpului de date;8 Octetul din câmpul suma de control va 4 calculat ca suma aritmetică atuturor octeţilor dincâmpurile anterioare !cu neli*area !cu e7cepţia câmpuluiadresă destinaţie& ?i transmise, octet cu octet, portului serial COM !dee7emplu octetul $=6 va 4 transmis ca doi octeţi: @$A9B$6 ?i @=A9$56, naceastă ordine.

    Etape de proiectare:

    1. Prezentarea etapelor proiectului, a modului de desă?urare ?i evaluare aactivităţii la proiect, repartizarea temei.. Prezentarea resurselor 6ardare !microsistemul MicroPac 515C& ?isotare !Deil EisionB ?i C51& ?i a acilităţilor de dezvoltare a proramelor!driverele de interaţare cu tastatura ?i a4?a*ul 0C/&.B. #ta

  • 8/16/2019 CSC Proiect Victor Bojica Ilie Radu

    5/24

    ,+ Pre-entarea resurselor hard.are si so/t.are /olosite

     Fig. 1 Placa principală a microsistemului

    (icro#ac 515 este un sistem %e %ezvoltare ce folose te un microcontrolerș In/ineon C0&0C

    Caracteristici tehnice ale microcontrolerului C0&0C

  • 8/16/2019 CSC Proiect Victor Bojica Ilie Radu

    6/24

     Fig. 2 Structura microcontrolerului C515C 

    • variantă m3unătă-ită a microcontrolerului SA4 0515A compati3il (S 51• memorie program internă %e pnă la 6'7octe-i 8cu e9cep-ia variantei C0&0C*1

    utilizată şi %e sistemele (icro#ac 515 %in la3orator• interfa-ă pentru memoria program %e 6'7octe-i• 256 octe-i %e memorie ,A( internă• 2 7octe-i %e memorie ;,A( internă• interfa-ă pentru memorie %e %ate e9ternă %e pnă la 6'7octe-i

    ar$itectură internă compati3ilă (S 51 cu registre D#!, n loc %e unul singur• frecven-ă %e tact %e pnă la 10(

  • 8/16/2019 CSC Proiect Victor Bojica Ilie Radu

    7/24

    •  port serial sincron SS 8compati3il S#I . Serial #erip$eral Interface• mo%ul A 8ontroller Area et&orB integrat complet implementat• 1+ surse %e ntrerupere organizate pe ' niveluri• ceas %e gar%ă• ' mo%uri %e consum re%us 8Slo& Do&n I%le (o%e SC /

  • 8/16/2019 CSC Proiect Victor Bojica Ilie Radu

    8/24

    mapa-i regiştrii %e interfa-ă ai mo%ulului A @tilizarea acestor facilită-i suplimentare se poate

    selecta e9plicit n configura-ia microcontrolerului 8;(A#0H0 n S, SJSE

     Fig. 4. Special Function Register la microcontrolerele Infineon C515C 

    Dacă ;(A#0H1 8aşa cum se ntmplă %upă resetare accesul la memoria ;,A( internă şi laregiştrii mo%ulului A este in$i3at n spa-iile %e a%resă respective fiin% FvăzuteG loca-iilecorespunzătoare %in ca%rul memoriei e9terne %e %ate 4itul ;(A#0 nu poate fi setat prin program ci numai o%ată cu resetarea microcontrolerului pentru a se preveni revali%areaacci%entală a accesului la memoria e9ternă %e %ate

    Atunci cn% ;(A#0H0 accesul la memoria ;,A( internă şi la regiştrii A poate fi făcutvizi3il şi n e9terior prin ;(A#1H1 care vali%ează liniile porturilor 0 şi 2 precum şi semnalele%e control ,D şi C,

    on-inutul memoriei ;,A( nu este afectat %e resetarea microcontrolerului %ar se pier%e la

    oprirea alimentării şi se pozi-ionează aleator la realimentare

    Caracteristici ale "lăcii de de-voltare uPac C0&0C

      Inter/e e de comunca ie serială i asincronăț ț ș

    K E(0 8,S)2"2 ) @A,! 515 . portul serial al microcontrolerului 515K E(1 8,S)2"2 E(2 8,S)'5 . un circuit e9tern D@A,! #$ilips

    S26L2 cu %ouă canale in%epen%ente full %uple9

    K E(" 8,S)2"2 ) @A,! A!L2051 ) portul serial al coprocesoruluiA!L2051

    K #orturile seriale pot lucra n mo%ul asincron cu 10 sau 11 3i-i/caracter şi cu rate%e comunica-ie %e pnă la 2"0' 73ps

    Inter/a ă CA4ț

  • 8/16/2019 CSC Proiect Victor Bojica Ilie Radu

    9/24

    515 integrează pe cip un mo%ul A 8ontroller Area et&orB care implementează n

    $ar%&are versiunea 204 a protocolului A

    I56 digitale

    K 11 linii I/? programa3ile %e nivel !!K linii %e ieşire %e curent mare 8500mAK ' linii %e intrare şi " linii %e ieşire !! situate pe circuitul D@A,! #$ilipsK iniile %e intrare A/D pot fi %e asemenea folosite ca intrări %igitaleK Atunci cn% coprocesorul A!L2051 nu este instalat mai rămn %isponi3ilencă 6 linii I/? %e nivel !!

      Intrări A57

    K intrări multiple9ate conectate la convertorul intern A/D cu rezolu-ia %e 10 3i-iK %urata unei conversii este %e L6 =s 810' 7eşantionări / sec

    Ieşiri 75A

    K ' canale %e ieşire D/A implementate cu un convertor e9tern AD+226 cu ' canaleK rezolu-ia ieşirilor D/A este %e 3i-iK Interfa-ă D ) permite controlul oricărui afişa* cu cristale lic$i%e 3azat pe controlerele

  • 8/16/2019 CSC Proiect Victor Bojica Ilie Radu

    10/24

     Fig. 5. Interfata programului oIC!51

    #rogramul 8%ision9 permite compilarea si $e9)e%itarea programelor ce vor fi incarcate

    ulterior pe placa cu a*utorul oI? #entru utilizare vom creia un proiect in care vom intro%uce

    ca li3rarii fisierele: mp515.c lc""r#.c cop"r#.c cir$ue.c mmio.a51 şi  startup.a51 avan% astfel

    acces la functii pre%efinite

    Sistemul (icro#ac 515 %ispune %e ' porturi seriale:K C23( ) #ortul serial UA)T C0&0C . ec$ipat cu un a%aptor %e linie ,S)K C23& şi C23, ) %ouă canale seriale furnizate %e interfa-a e9ternă 7UA)T Phili"s

    C,:C;, E(1 este ec$ipat cu un a%aptor ,S)2"2 iar E(2   este ec$ipat cu %ouă

    a%aptoare ,S)'5K C239 ) #ortul serial UA)T AT

  • 8/16/2019 CSC Proiect Victor Bojica Ilie Radu

    11/24

    K sim"le=  . comunica-ie ntr)un singur sens cu un singur flu9 %e %ate: un no% %oar 

    transmite 8sursă iar celălat %oar primeşte %ate 8%estina-ieK du"le= . comunica-ie n am3ele sensuri cu %ouă flu9uri %e %ate in%epen%ente: no%urile

     pot transmite şi primi %ate simultan 8am3ele no%uri pot fi att sursă ct şi %estina-ie

    K hal/*du"le= ) comunica-ie n am3ele sensuri cu %ouă flu9uri %e %ate ntre-esute:no%urile pot transmite şi primi %ate %ar nu simultan 8un no% poate fi la un moment %at fie

    sursă fie %estina-ie

    9+ Protocolul 3aster*lave

    #entru a forma o retea %e comunicatie este nevoie %e o placa 8no% care sa gestionezeflu9ul %e mesa*e %intre restul placilor conectate Astfel no%ul master %e-ine controlul re-elei şi

    acor%ă no%urilor slave pe rn% permisiunea %e a transmite %ate %ealungul retealei o%urile

    slave au ca responsa3ilitate să citească mesa*ele %e la master pentru a afla cn% au %reptul %e a

    transmite %ate Avanta*ul acestei organizări este acela că no%urile slave pot primi mesa*e numai

    %e la master şi nu vor tre3ui să citească răspunsurile celorlalte no%uri slave

    !e$nica master / slave este o te$nică %e acces la me%iu cu control centralizat este

    specificat atunci can% unul %intre no%uri poate transmite %ate şi momentul cn% poate face acestlucru Dreptul %e acces este acor%at %e către master pe rn% n mo% ciclic fiecărui no% slave

     printr)un mesa* a%resat acestuia a primirea unui mesa* un no% slave ştie că poate transmite la

    rn%ul lui un mesa* %ar numai către no%ul master Astfel %reptul %e acces revine sistematic la

    no%ul master care trece la următorul no% slave %in lista circulară

    a avanta*e ale acestei meto%e putem enumera:• fiecare no% primeşte %reptul %e acces n re-ea ntr)un timp finit in%iferent %e numărul %e

    mesa*e pe care le au %e transmis no%urile•  pe termen lung fiecare no% are aceleaşi şanse %e a transmite %ate n re-ea• %eterminism . fiecare no% primeşte %reptul %e acces ntr)un timp pre%icta3il

    a %ezavanta*e ale acestei meto%e putem enumera:• no%ul master are o ncărcare mult mai mare %ect no%urile slave cu sarcini %e

    comunica-ie• un mesa* %e la un no% slave pentru un alt no% slave apare n re-ea %e %ouă ori

  • 8/16/2019 CSC Proiect Victor Bojica Ilie Radu

    12/24

    • că%erea no%ului master %etermină 3locarea comunica-iei

    '+Programul "rinci"al

    #rogramul principal are ca i sc$elet următoarea figurăș

  • 8/16/2019 CSC Proiect Victor Bojica Ilie Radu

    13/24

     Fig. %. Sc&ema logica a programului principal 

  • 8/16/2019 CSC Proiect Victor Bojica Ilie Radu

    14/24

    #entru nceput n func ia principală vomț face cteva ini ializări necesare flo&)ului %e transmisieț . recep ie a %atelor cum ar fi:ț

    • Ini ializăm D . folosit pentru afi area %atelor transmiseț ș• Ini ializăm coprocesor tastatură i comunica ia cu acestaț ș ț• Ini ializăm portul serialț• Ini ializăm timer)ul !0ț• Ini ializăm 3ufferele pentru mesa*e pentru toate no%urile cuprinzn% : ini ializareț ț

    cmpuri a%resă %e către master ini ializare cmpuri a%resă %e către slave precum iț ș punerea primului caracter n 3uffer)ele ASII F : G

    On continuare tot flo&)ul programului principal se va %esfa ura ntr)o 3uclă infinitășOncă %e la nceput vom verifica %aca no%ul pe care ruleaza programul este master / slave Daca

    no%ul este master si %aca nu e9ista un mesa* ASII %e transmis catre slave i atunci se va folosiun mesa* %e introgareDupă aceasta etapa se va calcula suma %e controlse va face conversia 3inar)ascii %upa care

    transmite mesa*ul catre slave)ul i Slave)ul i va raspun%e cu un mesa* si va realiza conversia

    ascii)3inarE%ata apelate cele 2 functii %e !9(esa*8 respectiv ,9(esa*8 se va apela o functie %e afisare a

    mesa*ului receptionat in cazul nostru AfisarePmesa*8 %upa care va trece la urmatorul no% slave

    Daca in sc$im3 no%ul pe care ruleaza programul este slave atunci se va %uce pe ramura QelseG

    in care se vor parcurge urmatoarele etape:• Se asteapta un raspuns %e la master 8,9(esa*8 un%e se va realiza si conversia ascii)

     3inar• Se cauta un mesa* %e transmis in 3ufferele %e transmisie sare peste propriul 3uffer 8%e

    receptie iar %aca nu a fost gasit niciun mesa* %e transmis va iesi %in 3ucla QforG• Daca este gasit un mesa* ASII %e transmis se va apela ca si functie #regatirePmesa*8

    un%e se va calcula suma %e control si conversia 3inar)ascii• !ransmite mesa*ul cu %estinatia no%ul i 8prin interme%iul masterului

    Daca nu s)a transmis niciun mesa* %e %ate atunci se va transmite un mesa* %e interogare %upacare se vor apela functiile %e #regatirePmesa*8 )R in care se calculeaza suma %e control siconversia 3inar) ascii !9(esa*8 . transmite mesa*ul %e interogare catre masterIn cazul in care primim un mesa* se va afisa folosin% functia AfisarePmesa*8

    #erio%ic vom verifica %aca s)a apasat o tasta iar %aca s)a efectuat atunci vom trata coman%atransmisie mesa* Dupa cateva a%aptari vor intervine cateva verificari privin% 3uffer)ul (ai

  • 8/16/2019 CSC Proiect Victor Bojica Ilie Radu

    15/24

     precis ne vom intre3a %aca 3uffer)ul este plin / sau nu In caz afirmativ se va afisa un mesa*Q4uffer #linG si totul va continua cu refacerea meniului comenzi

    5. Pregătirea mesa$elor "entru transmisie

      #entru urmatoarele referinte vom avea ca si suport sc$eletul in lim3a* pseu%oco% %in figuraurmatoare

     Fig. '. Sc&ema logica a functiei "e pregatire a mesa(ului

    Dupa cum stim functia Pregatire>mesa$?@ reprezinta una %intre cele " functii pe care le avem %eimplementat pentru functionarea corecta a sistemului %e comunicatie

    Aceasta functie va avea ca si tinta alcatuirea mesa*ului ce va fi trimis prin retea %e la un no% laaltul si tre3uie respectate anumite reguli pentru a putea fi interpretat si utilizat corect %e functiile

  • 8/16/2019 CSC Proiect Victor Bojica Ilie Radu

    16/24

    %e receptie si transmisie

    onform figurei %e mai sus tre3uie sa tinem cont %e urmatorii pasi pentru realizareameto%ei Pregatire>mesa$?@+

    • Merificarea printr)un #E a tipului %e %ate ce tre3uie pregatit: %ate / interogare

    In cazul in care este %e interogare mesa*ul ce va tre3ui prelucrat va reprezenta suma %e control ano%ului egala cu a%resa no%ului

    ontrar se va construi suma %e control tinan%u)se seama %e a%resa no%ului co%ul functieilungimea %atelor si %atele ce tre3uie trimise

    Atasat mai *os este functia Pregatire>mesa$?@ in conformitate cu sc$ema pseu%oco% a proiectului

    void  Pregatire_mesaj(int i){ // pregatire mesaj pentru transmisie catre nodul iunsigned  char sc, *ptr;int j;if(retea[i].bufbin.functie==POLL)// daca este un mesaj de interogare (POLL=0)

    retea[i].bufbin.sc = retea[i].bufbin.adresa; // atunci suma de control este egalacu adresa HW a nodului destinatie

    else{sc = retea[i].bufbin.adresa; // initialieaa !" cu adresa HW a nodului destinatiesc+=retea[i].bufbin.functie; // ia in calcul codul functieisc+=retea[i].bufbin.destsrc; // ia in calcul adresa nodului destinatie sau sursa a

     mesajuluisc+=retea[i].bufbin.ln; // ia in calcul lungimea datelorfor(j=!;j"retea[i].bufbin.ln;j++)

    sc+=retea[i].bufbin.date[j#$ // ia in calcul datele

    retea[i].bufbin.sc=sc; // stocheaa suma de control  #

    ptr = retea[i].bufasc; // pune in %ufasc codul functiei*ptr++=retea[i].bufbin.adresa+$!$;bin%ascii(retea[i].bufbin.functie, ptr);ptr+=%;

    if(retea[i].bufbin.functie==&'){ // daca este un mesaj de date (&'!)bin%ascii(retea[i].bufbin.destsrc, ptr); // pune in %ufasc destsrcptr+=%;bin%ascii(retea[i].bufbin.ln, ptr); // pune in %ufasc lng dateptr+=%;for(j=!;j"retea[i].bufbin.ln;j++){ // pune in %ufasc datele

    bin%ascii(retea[i].bufbin.date[j], ptr);ptr+=%;

    # #bin%ascii(retea[i].bufbin.sc, ptr); // pune in %ufasc !"ptr+=%;*ptr++=!!d; // pune in %ufasc " *ptr=!!a; // pune in %ufasc L

    #

  • 8/16/2019 CSC Proiect Victor Bojica Ilie Radu

    17/24

    :+ Transmisia mesa$elor

    Dupa cum ne putem %a seama functia %e transmisie a mesa*elor reprezinta a 2)a meto%a cetre3uie implementata in ca%rul procesului %e comunicatie a si suport pentru implementarea co%ului respectiv a %escrierii functionalitatii vom aveasc$ema pseu%oco% %in figura %e mai *os

  • 8/16/2019 CSC Proiect Victor Bojica Ilie Radu

    18/24

     Fig. ). Sc&ema logica a functiei "e trimitere a mesa(elor 

    !ransmisiePmesa*8 este folosit pentru a trimite mesa*ul %in 3uffer)ul i

    o%ul %e mai *os reprezinta implementarea functiei %e Transmisie>mesa$?@void  *+&esaj(int i){ // transmite mesajul din %ufferul i

    unsigned  char *ptr;er-/-eset(O&%,/0L102,/0L102);  // resetare soft,are a transmitatorului si

    receptoruluierettatus(O&%, &3L21P-O0-'0); // configureaa "O&- pentru a transmite octeti de

    tip adresaer-/'nable(O&%,/0L102,141502);  // validare transmitator. inhi%are receptor$

      eret4ands6a7e(O&%,OP2-0&11'); // valideaa emitatorul de linie !1

    ptr=retea[i].bufasc; // transmite adresa HW 2!"33 a nodului destinatieerend58te(O&%,*ptr,9); // asteapta receptia adresei transmise pe linie

    if(er-ecei:e58te(O&%,9)=*ptr){eret4ands6a7e(O&%,OP-''P21');  // inhi%a emitatorul de linieLetpos(iune); // renunta. daca s4a detectat o coliiuneela8(9!!!);

    #else{erettatus(O&%,&3L21P-O020);  // configureaa "O&- pentru a transmite si

    receptiona datedo{

    er5loc7end(O&%,*(++ptr)); // transmite codul functiei# ,hile(*ptr = !!a); // slave4ul considera acum ca a transmis mesajulif(0-O=&02'-){

    retea[i].full=!;#

     ,hile(erone(O&%)==!); // asteapta terminarea transmisieieret4ands6a7e(O&%,OP-''P21');  // inhi%a emitatorul de linie

    ##

    + )ece"ţia mesa$elor B descriere schema logică şi im"lementare

    ,eceptiePmesa*8 reprezinta ultima parte ce tine %e implementare un%e putem spune caeste si cea mai comple9a functie

  • 8/16/2019 CSC Proiect Victor Bojica Ilie Radu

    19/24

    Implementarea respectiv scrierea co%ului au avut ca si suport sc$ema in pseu%oco% %in figura%e mai *os

  • 8/16/2019 CSC Proiect Victor Bojica Ilie Radu

    20/24

     Fig. *. Sc&ema logica a functiei "e receptie a mesa(elor 

  • 8/16/2019 CSC Proiect Victor Bojica Ilie Radu

    21/24

     Fig. *. Sc&ema logica a functiei "e receptie a mesa(elor 

  • 8/16/2019 CSC Proiect Victor Bojica Ilie Radu

    22/24

    o% sursa :

    void  +&esaj(int i){ ?? receptie @esaj in bufferul i

     unsigned  char j, c6, sc, screc, destsrc, ln, functie, *ptr, *ptrbin;

    eret4ands6a7e(O&%, OP-''P21');er-/-eset(O&%, /0L102, /0L102);erettatus(O&%, &3L21P-O0-'0);if(0-O==&02'-){

    c6=er-ecei:e2&O(O&%, 9!!!);if(ti@eout){

    error(2i@eout nod );LPutc6ar(i+$!$);return;

    #else{

    retea[i].full=!;if(c6 = 0-O + $!$){

    error('roare adresa);ela8(9!!!);

    return;#

    ##else{

    do{c6=er-ecei:e58te(O&%, 9);

    # ,hile(c6 = 0-O + $!$);#

    er-/'nable(O&%, 141502, /0L102);erettatus(O&%, &3L21P-O020);

    ptr = retea[i].bufasc;

    *ptr = 0-O + $!$;

    do{*(++ptr) = er-ecei:e2&O(O&%,A);if(ti@eout){

    error(2i@eout nod );LPutc6ar(i+$!$);return;

    ## ,hile(*ptr = !!0);

    ptr = retea[i].bufasc;screc = *ptr++ B $!$;functie = ascii%bin(ptr);ptr+=%;

    if(functie C= %){error('roare cod functie);return;

    #screc += functie;if(functie = &'){

    sc = ascii%bin(ptr);if( sc == screc){  return; #else{

  • 8/16/2019 CSC Proiect Victor Bojica Ilie Radu

    23/24

    error('roare ); #

    #else{

    destsrc = ascii%bin(ptr);ptr += %;screc += destsrc;

    if(0-O==&02'-){if(retea[destsrc].full == 9){

    error('roare de suprapunere);return;

    ##

    ln = ascii%bin(ptr);ptr += %;screc += ln;

    if(0-O==&02'-){retea[destsrc].bufbin.functie = functie;retea[destsrc].bufbin.destsrc = i;

    retea[destsrc].bufbin.ln = ln;

    for(j=!; j " retea[destsrc].bufbin.ln; j++){retea[destsrc].bufbin.date[j] = ascii%bin(ptr);ptr += %;

      screc += retea[destsrc].bufbin.date[j];#

    sc = ascii%bin(ptr);if(sc == screc){

    retea[destsrc].full = 9 ;return;

    #else{

    error('roare );return;#

    #else{

    retea[0-O].bufbin.functie = functie;retea[0-O].bufbin.destsrc = destsrc ;retea[0-O].bufbin.ln = ln ;

    for(j=!; j " retea[0-O].bufbin.ln; j++){retea[0-O].bufbin.date[j] = ascii%bin(ptr);ptr += %;screc += retea[0-O].bufbin.date[j];

    #

    sc = ascii%bin(ptr);

    if(sc == screc){retea[0-O].full = 9 ;return;

    #else{

    error('roare );return;

      ##

  • 8/16/2019 CSC Proiect Victor Bojica Ilie Radu

    24/24

    ##