1. Notiunea de SI. Prezentati diferentele fata de calculatoarele de uz general.
Definiia 1: Un SI este un sistem integrnd hardware i software i proiectat pentru o anumit funcionalitate. Definiia 2: Un SI este in sistem de calcul cu scop predefinit inclus ntr un dispozitiv pe care l conduce. Definiia mea: SI constituie un subdomeniu al domeniului ingineriei calculatoarelor, bazat pe circuite logice programabile de utilizator i orientat pe aplicaii de timp real. Diferene ale SI fa de calculatoarele de uz general: -Interfaa cu omul: led uri, LCD uri, comutatoare, minitastaturi; -Sisteme de intrare/ ieire simple, fr periferie; -Pot include porturi de diagnosticare; -Pot include FPGA uri, ASIC uri, circuite analogice;
2. Caracteristici si cerinte ale SI. Conectare la mediul exterior, monitorizndu l, prin intermediul senzorilor i comandndu l, prin intermediul actuatorilor. Un actuator poate fi definit ca un dispozitiv care convertete valori numerice n efecte fizice. Funcionare reactiv: un sistem reactiv este n continu interaciune cu mediul nconjurtor i execut sarcinile la rata determinat de mediu; un sistem reactiv poate fi gndit ca fiind ntr o anumit stare, ateptnd o intrare; pentru fiecare intrare execut una sau mai multe operaii i genereaz o ieire; un asemenea sistem poate fi modelat foarte bine de un automat; Funcionare n timp real: timpul devine un parametru al execuiei operaiilor; exist constrngeri de timp hard (produc efecte grave, uneori dezastruoase, la nerespectare) i soft (produc efecte negative la nerespectare); Eficiena: un SI trebuie s fie eficient; aceasta poate fi evaluat cu urmtoarele 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; Execuie implicnd minim de circuite; Greutate i dimensiune mici; Cost redus. Funcionare n medii grele: cldur excesiv, vibraii, coroziune, fluctuaii ale tensiunii de alimentare; Dependabilitate: foarte important datorit conexiunii cu mediul exterior; cuprinde urmtoarele aspecte ale unui sistem: Fiabilitate: probabilitatea ca un sistem s nu se defecteze; Mentenabilitate: probabilitatea ca o defeciune s poat fi reparat ntr un timp anumit; Siguran: probabilitatea ca o defeciune 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; Reele de SI; Modelare, simulare i validare; Aplicaii
2
4. Directii in studiul SI.Legtura sisteme ncorporate Ubiquitous and Pervasive Computing Primul val n domeniul calculatoarelor: calculatoarele mari, 1 calculator - mai muli 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 oricnd pregtite s proceseze informaia; Spre deosebire de modelul desktop n care un utilizator folosea un sistem de calcul pentru a realiza o sarcin, n UPC omul determin procesarea informaiei de ctre mai multe sisteme, n activitatea sa curent, fr a fi necesar s fie contient 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 cteva trsturi: o Numrul pinilor de I/ E: numrul pinilor de I/ E tebuie comparat cu cel al liniilor care trebuiesc monitorizate/ comandate; unii pini de I/ E pot fi multiplexai; o Numrul interfeelor; o Cerinele de memorie; o Numrul liniilor de ntrerupere; o Faciliti de timp real: registre de captare/ comparare, PWM etc.; acestea pot fi realizate i fr faciliti specifice dar cu preul timpului; o Viteza: nu este dat ntotdeauna doar de frecvena tactului, trebuie cunoscut i structura intern: de ex. un microcontroler Atmel la 8 MHz este mai rapid dect un microcontroler PIC la 20 MHz; o Setul de instruciuni: RISC sau CISC; subsetul de instruciuni 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 Situaia ideal: atunci cnd 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 dect cea gestionat de un microprocesor, fiind n domeniul nx10 octei nx10 Mo, aplicaiile de timp real nu cer, n general, mult memorie. Intrri/ ieiri specifice: o Microcontrolerele includ interfee i module periferice ca urmare ele nu mai apar de sine stttoare n SI; o SI nu au periferice: harddisk uri, monitoare, imprimante, mouse etc. o Intrrile/ ieirile SI sunt specifice: Citesc informaia de la senzori analogici sau digitali, Primesc comenzi din exterior, fie pe linii digitale fie de la comutatoare, minitastaturi, Afieaz informaia pe led uri, LCD uri, afiaje cu 7 segmente, Comand actuatori. 3
o SI pot comunica pe linii seriale, cu sau fr 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 aplicaiile domestice, nu necesit software de baz. Software aplicativ: o Implementeaz funcionalitatea cerut; o Necesit limbajul de programare i mediul de programare; mediul de programare ruleaz pe un PC; o Asigur operaii 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 spaiul de memorie de program i cel de memorie de date, activnd 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 funciuni speciale P0 P1 P2 P3 TxD RxD T0 T1 4
Dac terminalul /EA = 0 sau dac accesul se face la o locaie cu adresa peste 0FFFH, va fi adresat memoria extern de program; Locaii cu funciuni 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 interfaa serial. Memoria de date: intern i extern. Memoria de date intern: 128 octei, 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 cte 8 octei, 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 conine un grup de registre interne, cu funciuni speciale, SFR (Special Function Registers); Exist cteva 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 funciuni speciale sunt adresabile n mod direct, adresele lor se afl n zona 80H FFH; Registrele ale cror adrese se termin n 0 sau 8 pot fi adresate i la nivel de bit. Tabelul urmtor prezint registrele i adresele lor. ACC: este registrul acumulator; n cadrul instruciunilor este denumit A. B: este un registru cu rol predeterminat n instruciunile de nmulire i mprire; pentru celelalte instruciuni, poate fi utilizat ca registru general. SP ("Stack Pointer"): este indicatorul de stiv; este incrementat naintea unei depuneri n stiv prin intermediul instruciunilor CALL sau PUSH; dup iniializare este ncrcat cu valoarea 07H deci stiva ncepe de la adresa 08H; poate fi ncrcat, prin program, cu orice valoare. PSW ("Program Status Word"): este registrul de stare al programului. Conine indicatorii de condiii; 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.
5
9. Modurile de lucru ale contorului 8051. Exist 4 moduri de lucru pentru TIMER 0 i 1, selectabile prin rangurile corespunztoare M1 i M0. Modul 0: TIMER 0 i 1 sunt configurate ca numrtoare pe 13 bii; TL0 i TL1 sunt numrtoare alctuite din 5 ranguri, cele mai puin semnificative iar TH0 i TH1 sunt numrtoare pe 8 bii; indicatorii de depire TF0 i TF1 sunt poziionai atunci cnd numrtorul corespunztor conine valoarea maxim i este incrementat, anulndu-se astfel coninutul su; Semnalul care apare la ieirea de depire a lui TIMER 1 este surs pentru tactul serial.
Modul 1: Este identic cu modul 0, cu excepia faptului c numrtoarele sunt pe 16 bii.
Modul 2: TIMER 0 i 1 sunt configurate ca numrtoare pe 8 bii cu auto-ncrcare; TL0 i TL1 sunt folosite ca numrtoare iar TH0 i TH1 sunt folosite ca registre pentru pstrarea constantei care se va ncrca; Semnalul de depire generat de TL0 sau TL1 va provoca prencrcarea acestora i numrarea va continua de la aceast valoare; TH0 i TH1 sunt ncrcate prin program; indicatorii TF0 i TF1 sunt poziionai de semnalele de depire de la numrtoarele TL0, respectiv TL1; Semnalul de depire generat de numrtorul TL1 este surs pentru tactul serial; Figura urmtoare prezint pe TIMER 0 i 1 n modul 2:
Modul 3: Modul poate fi cerut doar pentru TIMER 0; dac i se cere lui TIMER 1, acesta nu va numra (se obine acelai efect ca i cnd TR1 = 0); TIMER 0 n modul 3 lucreaz ca dou numrtoare independente pe 8 bii; TL0 folosete rangurile de control ale lui TIMER 0, adic C/ /T, GATE, TR0 i /INT0 i comand pe TF0 iar TH0 folosete pe TR1 i comand pe TF1; Modul este util n aplicaii n care se cere un numrtor suplimentar; TIMER 0 furnizeaz 2 contoare pe 8 bii iar TIMER 1 poate fi folosit n modurile 0, 1 sau 2 fr a putea, ns, s poziioneze pe TF1 deci nu va putea s genereze cerere de ntrerupere.
10. Modurile de lucru ale interfetei seriale 8051 Interfaa serie poate lucra n modurile: I/ E (intrare/ ieire) 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 bii; caracterul pe 11 bii este alctuit dintr-un bit de START, 8 bii 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 bii, 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 f OSC / 12 TH0 TF1 TL0 TF0 CLOCK 7
Rata de transfer este: R = f OSC/ 12. Modul 1: Este un mod UART n care se transfer caractere pe 10 bii: 1 bit de START, 8 bii de date, primul fiind cel mai puin semnificativ i 1 bit de STOP; La recepie, bitul de STOP se ncarc n RB8; Rata de transfer este determinat de frecvena semnalului de la ieirea de depire 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 prencrcare; 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 anclanat de o scriere n tamponul SBUF iar recepia se realizeaz pe terminalul RxD i este anclanat la apariia bitului de START; Data se preia din tamponul SBUF; ncrcarea datei n SBUF, a bitului de STOP n RB8 i activarea indicatorului RI se realizeaz doar dac n momentul respectiv sunt ndeplinite condiiile: RI = 0 i SM2 = 0 sau SM2 = 1 i bitul STOP = 1. Dac vreuna din aceste condiii nu este ndeplinit atunci data este ignorat i SBUF, RB8 i RI rmn nemodificate Modul 2 Mod UART cu 11 bii/ caracter: 1 bit de START, 8 bii de date, 1 bit programabil i 1 bit de STOP; La transmisie, bitul al 9-lea este TB8 i poate fi programat iar la recepie, bitul al 9-lea este ncrcat n RB8; Rata de transfer este: R = 2SMOD x fOSC/ 64; Transmisia: bit de START, 8 bii de date, bit 9 (TB8, care poate fi bitul de paritate dac n prealabil acesta a fost ncrcat n TB8), bit de STOP i activare a indicatorului TI; La recepie, dup preluarea bitului de START i a biilor 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, ncrcarea celui de- al 9-lea bit n RB8 i activarea indicatorului RI au loc dac sunt ndeplinite, la momentul respectiv, condiiile: RI = 0 i SM2 = 0 sau SM2 = 1 i bitul al 9-lea = 1; Dac vreuna din aceste condiii nu este ndeplinit atunci data este ignorat i SBUF, RB8 i RI rmn nemodificate. Modul 3 Mod UART cu 11 bii/ 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 obinerea lor din TIMER 1: 8
11. Descriei funcionarea sistemului multimicrocontroler bazat pe interfaa serial a microcontrolerului 8051. Facilitatea de comunicare n sistem multiprocesor: se bazeaz pe existena 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 iniial, toate microcontrolerele slave au SM2 = 1 i ateapt 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 ntruct 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 ctre microcontrolerul slave care a fost selectat; n acest fel s-a revenit n starea iniial n care toate microcontrolerele slave au SM2 = 1 i ateapt s fie selectate.
12. Sistemul de intreruperi al 8051. 5 surse pentru ntreruperi: a) 2 ntreruperi externe generate la intrrile /INT0 i /INT1 i b) 3 ntreruperi interne: 2 de la circuitele contoare/ temporizatoare i una de la ntreruperea serial.
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 intrri ntr-o poart SAU a crei ieire este cererea de ntrerupere de la interfaa serial; pot fi controlai i prin program. Dac se ncarc 1 n unul din aceti indicatori, efectul va fi acelai ca i cel produs de cererea corespunztoare hardware. Dac exist o cerere hardware n ateptare, care nu a fost nc tratat, ea poate fi anulat prin tergerea indicatorului corespunztor. 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 corespunztor trebuie s fie 1 iar pentru a o dezactiva, bitul corespunztor trebuie s fie 0; n plus, exist un rang pentru dezactivarea general a ntreruperilor; Rolul registrului IP este acela de a aloca prioriti; Exist 2 nivele de prioritate: sczut i ridicat; fiecrei surse i se poate aloca , n mod independent, oricare nivel de prioritate; Fiecrei ntreruperi i corespunde un rang: 1 n rangul respectiv nseamn prioritate ridicat iar 0 n rangul respectiv nseamn prioritate sczut; Dac apar simultan 2 cereri de ntrerupere, de prioriti diferite, va fi tratat cererea de prioritate mare; Dac apar simultan 2 sau mai multe cereri de aceeai 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 sczut 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 aceeai 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 corespunztor 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. 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 fiecrui ciclu main; Apoi are loc o testare a ceea ce s-a citit n timpul urmtorului ciclu main; Dac vreunul din indicatorii de ntrerupere a fost gsit activ i dac ntreruperea respectiv este validat atunci sistemul de ntreruperi va genera o instruciune LCALL ("Long CALL") ADR, unde ADR depinde de tipul ntreruperii, conform tab.: ntreruperile sunt citite n timpul lui S5P2 al fiecrui ciclu main; Apoi are loc o testare a ceea ce s-a citit n timpul urmtorului ciclu main; Dac vreunul din indicatorii de ntrerupere a fost gsit activ i dac ntreruperea respectiv este validat atunci sistemul de ntreruperi va genera o instruciune 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 Instruciunea LCALL nu se va genera n una din urmtoarele situaii: 1. o ntrerupere de prioritate egal sau mai mare este deja n tratare; 2. ciclul curent de testare nu este ultimul ciclu al instruciunii curente sau 3. instruciunea curent este RETI sau o instruciune ce scrie n registrele IE sau IP. Condiia 2. asigur luarea n considerare a unei cereri de ntrerupere doar la sfiritul unei instruciuni iar condiia 3. asigur luarea n considerare a unei cereri de ntrerupere doar dup ce se execut nc o instruciune dup RETI sau dup cea care scrie n registrele IE sau IP; Dac exist o singur surs de ntrerupere atunci timpul de rspuns este ntre 3 i 8 cicluri main. Instruciunea LCALL va depune coninutul lui PC n stiv i va ncrca 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. Execuia rutinei de tratare a cererii de ntrerupere se ncheie la ntlnirea instruciunii RETI; ncarc n PC adresa de revenire i iniializeaz sistemul de ntreruperi; rutina se poate ncheia i cu instruciunea RET dar nu se va iniializa 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 tranziie 1 0 pe una din intrrile /INT0 sau /INT1 va poziiona 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 condiie rezult din faptul c terminalele /INT0 i /INT1 sunt citite doar o singur dat n fiecare ciclu main; 11
Dac cererea extern este activ pe nivel, ea trebuie s rmn activ pn la nceperea execuiei 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 aplicaii n care consumul este un factor critic; Instalarea lor se face prin program, acionnd asupra a cte 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 interfaa serial. Modul Idle: Microcontrolerul intr n acest mod dup activarea, de ctre o instruciune, a rangului IDL; Oscilatorul, interfaa serial, contoarele/ temporizatoarele i sistemul de ntreruperi continu s funcioneze dar tactul nu mai ajunge la CPU. ntregul CPU i pstreaz starea; Ieirea: prin ntrerupere validat sau RST; Modul Power Down: Este instalat de o instruciune ce activeaz rangul PD; Oscilatorul se oprete, ca urmare starea ntregului microcontroler rmne nemodificat (microcontrolerul "nghea"); Singura ieire din acest mod este prin activarea intrrii 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 ieirea din modul Power - Down s se fac dup ce Vcc a revenit la valoarea de lucru.
14. Porturile 8051. Este resursa direct utilizat n aplicaiile de timp real, de monitorizare, comand i control; Microcontrolerul 8051 dispune de 4 porturi bidirectionale, pe 8 bii, 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 ieire; Porturile sunt de uz general, fiecare rang poate fi programat independent ca intrare sau ieire i, n plus, porturile P0, P2 i P3 au i funciuni 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 jumtatea mai puin semnificativ din magistrala de adrese i cea de date iar liniile portului P2 vor transfera jumtatea mai semnificativ a magistralei de adrese; Atunci cnd se aduce un cod de instruciune din memoria de program extern, liniile porturilor P0 i P2 vor fi comandate de PC iar atunci cnd 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 bii, atunci adresa se obine pe liniile portului P0 care va fi comandat de registrul R0 sau R1; Rangurile portului P3 au funciuni specifice individuale conform tab.: SMOD - - - GF1 GF0 PD IDL 12
Rang Funcia specific P3.0 RxD: intrare serial P3.1 TxD: ieire serial P3.2 /INT0: ntrerupere extern 0 P3.3 /INT1: ntrerupere extern 1 P3.4 T0: intrare de numrare pentru contorul 0 P3.5 T1: intrare de numrare 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 coninut de majoritatea microcontrolerelor. Astfel, toate conin contoare/ temporizatoare. Acestea pot fie s numere evenimente externe fie s msoare timpul. Unele microcontrolere conin 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 iei altfel. Unele microcontrolere conin contoare cu facilitile de captare i comparare. Facilitatea de captare permite captarea coninutului contorului i memorarea sa ntr un registru intern, la comanda unui semnal extern. Facilitatea este util la msurarea cu exactitate a timpului, a duratei i perioadei unor semnale etc. Facilitatea de comparare permite modificarea unor ieiri ale microcontrolerului atunci cnd contorul a ajuns la o valoare preprogramat. n funcie de modul de lucru ales, modificarea ieirii 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 ieiri modulate n durat; Facilitate util pentru comanda motoarelor de curent continuu; Implementat cu un contor/ temporizator pe 32 bii cu un divizor intern de 32 bii; 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 ridictor i cobortor; util pentru comanda motoarelor de curent continuu multi faz care cer 3 impulsuri cu posibilitate de poziionare distinct a fronturilor ridictor i cobortor ale fiecruia;
Posibilitate de a genera: 1. Ieire activ la 1 la fiecare nceput de ciclu; 2. Ieire activ la 1 sau la 0 n timpul ciclului; 13
Registre care stabilesc durata semnalului activ i poziia sa; Un exemplu de modul PWM:
Este o arhitectur a microcontrolerelor Motorola pe 16 bii; 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 bii, cu faciliti de ntrerupere; Contor pe 16 bii cu 8 canale de captare/ comparare; contor acumulator (2 pe 8 bii sau 1 pe 16 bii); 8 canale PWM; 2 interfee seriale asincrone i 3 interfee seriale sincrone;
18. Descrieti, pe scurt, modurile de operare ale uc HCS12. Moduri de operare: sunt stabilite la frontul ridictor 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 funciuni alternative magistralele de adrese/ date; Special Single Chip Mode: nu folosete magistrale externe; Emulation Extended Narrow Mode: folosete magistral extern de date pe 8 bii; pentru sisteme mai ieftine; Emulation Expanded Wide Mode: magistrale externe de 16 bii; Normal Single Chip Mode: fr magistrale externe; Normal Expanded Narrow Mode: magistral extern de date de 8 bii pentru sisteme mai puin performante; Normal Expanded Wide Mode: magistral extern de date de 16 bii; 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 productor; este un mod special; ieirea din el se face modificnd valorile pinilor BKGD, PE6 i PE% i activnd semnalul /RESET; direcia magistralelor de date i adrese este spre circuit iar sistemul extern, de testare, este cel ce genereaz semnalele de comand, plaseaz informaia pe magistrale i iniiaz 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, comparnd valori curente de adrese i date cu coninuturile 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 reacie dup execuia instruciunii de la adresa specificat iar al doilea asigur reacie nainte de execuia instruciunii de la adresa specificat; 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 bii, pe octet superior sau inferior, la citire sau scriere; g. Blocul este controlat prin SFR, de ex. Breakpoint Control Register 0:
16
20. Memoria interna flash a uc HCS12. a. Capacitate de 256 Ko, organizat ca 4 blocuri de cte 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; 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. Rezoluie de 8/ 10 bii; c. Timp de eantionare programabil; d. Anclanare extern i prin program; anclanarea extern poate fi activat de front (cresctor sau descresctor sau de nivel, low sau high); anclanarea extern poate fi invalidat; e. Generare de ntrerupere la ncheierea conversiei; f. Conversie singular sau multipl, pe unul sau mai multe canale; numrul de conversii poate fi programat ntre 1 i 8; g. Moduri de operare: i. Stop: sistemul se oprete, orice conversie este abandonat; ii. Wait: conversia se oprete sau este continuat n funcie 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 funcie de starea a 2 ranguri din un SFR;
22. Modulul contor/temporizator al uc HCS12. a. Circuitul de baz este un contor pe 16 bii, programabil; tactul trece printrun divizor cu prescalare; b. 8 canale de captare/ comparare; c. 4 Pulse Accumulators pe cte 8 bii configurabili i ca 2 Pulse Accumulators pe cte 16 bii; d. Funcionarea este controlat de SFR uri; ex.: TIOS (Timer Input Capture/ Output Compare Select Register) 18
23. Interfata SCI al HCS12. a. Operare full duplex; b. Format pe 8 sau 9 bii, plus biii de cadrare i bitul de paritate; c. Transmitorul i receptorul pot fi validai separat; d. Generare de ntrerupere la: transmitere ncheiat, preluare caracter, eroare de ritm, de cadrare, de paritate, zgomote; e. Formatul datelor:
Schema bloc 19
24. Interfata I2C al HCS12. 1. Interfa serial sincron, multimaster; 2. Rata de transfer 100 kbps; 3. 2 linii: SDA i SCL; numrul de terminale care se leag la linii este limitat doar de valoarea maxim a capacitii liniilor (400 pF); 4. 256 valori pentru frecvena tactului; 5. Posibilitate de a genera cerere de ntrerupere la transferul fiecrui octet de date; 6. Schema bloc:
20
25. Modurile MSCAN ale HCS12. Compatibil cu protocolul CAN 2.0 A i B; Comunicri seriale n industria automotive, respectnd cerine specifice: procesare n timp real, operare sigur n mediu cu radiaii electromagnetice, lime de band suficient, cost sczut; Rat de transfer programabil, pn la 1 Mbps; Filtru intern pentru diferite configuraii; Mod loop back pentru autotestare; Organizarea registrelor:
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. Numrtor distinct, pe 8 bii, pentru fiecare canal PWM; c. Fiecare canal poate fi activat sau dezactivat; d. Polaritatea ieirii poate fi programat; e. 4 surse de tact, acoperind un domeniu larg de frecvene; f. Oprire n caz de avarie; g. Exist 8 terminale dedicate, PWM0 PWM7, ultimul fiind i intrare pentru facilitatea de oprire la avarie; h. Ieirea unui canal poate fi aliniat la stnga sau centrat:
22
Schema bloc
23
27. Porturile MC9S12DJ256. a. 10 porturi, avnd i funciuni alternative; b. Caracteristici minime ale unei linii de port: i. Intrare sau ieire; ii. Ieire 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 opionale: i. Dren deschis pentru I cablat; ii. Intrri cu filtrare a impulsurilor scurte; d. Multiple SFR uri: i. Pentru cele 10 porturi; ii. Pentru direcie; iii. Pentru a selecta pull up sau pull down la intrri; iv. Pentru a selecta una din dou puteri ale ieirilor; v. Pentru validare ntreruperi i front activ; vi. Pentru operaia i cablat;
28. Exceptiile MC9S12DJ256.
Fiecare excepie are un vector pe 16 bii care duce la adresa de nceput a rutinei de tratare; tabela vectorilor se afl n 128 octei din zona superioar a spaiului standard de 64 Ko; tabelul urmtor arat tabela vectorilor precum i prioritatea excepiilor (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 pn 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 instruciuni orientat pe aplicaii de monitorizare i control; Exist instruciuni la nivel de bit care permit comanda individual a rangurilor din registre i din porturi, fr afectarea restului de ranguri; 24
Pentru accesul rapid n cadrul unor structuri de date de dimensiuni mici, exist mai multe moduri de adresare i mai multe tipuri de instruciuni de transfer; Moduri de adresare Adresarea direct: operandul este specificat printr-o adres pe 8 bii n cadrul instruciunii; se folosete doar pentru adresarea memoriei RAM interne i a registrelor cu funciuni speciale; exemplu: MOV A,09H; Adresarea indirect: n cadrul instruciunii se specific un registru care conine 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 instruciuni 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 instruciunii, 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 cutare din memoria de program; un registru de baz de 16 bii, DPTR sau PC, indic baza tabelei iar acumulatorul indic intrarea n tabel; exemplu: MOVC A,@A + DPTR; adresarea indexat se folosete i la instruciunile de salt cu selecie: adresa destinaie a unei instruciuni de salt se obine adunnd coninutul 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 bii n cadrul instruciunii; se folosete doar pentru adresarea memoriei RAM interne i a registrelor cu funciuni speciale; exemplu: MOV A,09H; b. Adresarea indirect: n cadrul instruciunii se specific un registru care conine 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 instruciuni 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 instruciunii, 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 cutare din memoria de program; un registru de baz de 16 bii, DPTR sau PC, indic baza tabelei iar acumulatorul indic intrarea n tabel; exemplu: MOVC A,@A + DPTR; adresarea indexat se folosete i la instruciunile de salt cu selecie: adresa destinaie a unei instruciuni de salt se obine adunnd coninutul 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.Instruciuni aritmetice a. Instruciuni cu 2 operanzi: ADD, ADDC, SUBB, MUL i DIV; utilizeaz registrul A; b. Instruciuni cu 1 operand: INC, DEC; c. Instruciune cu operand implicit: DAA; 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. Instruciuni logice: Instruciuni care implementeaz funciile logice de baz: CPL, ANL, ORL i XRL; Operanzii se gsesc n registrul A sau pot fi furnizai prin adresare direct, ceea ce nseamn c se refer la memoria RAM intern i la SFR, prin adresare imediat sau prin adresare indirect; Instruciuni de rotire a acumulatorului: RR, RRC, RL i RLC; Instruciune de interschimbare a celor 2 jumti ale acumulatorului: SWAP; o aplicaie este conversia unui numr din binar n BCD; ex.: MOV B,#10 DIV AB SWAP A ADD A,B. Instruciunea de divizare ofer ctul n A i restul n B; ctul este cifra zecilor, ca urmare trebuie s ajung n jumtatea mai semnificativ a lui A; operaia este realizat de SWAP iar instruciunea de adunare duce n jumtatea mai puin semnificativ a lui A, cifra unitilor; rezultatul, adic numrul convertit n BCD, se va afla n registrul A; 3. Instruciuni de lucru cu subrutinele Instruciuni de apel de subrutin: ACALL, la care destinaia trebuie s se afle n aceeai pagin ca i instruciunea de apel (2 octei); LCALL la care destinaia poate fi oriunde n spaiul de memorie extern de program (3 octei); Destinaiile instruciunilor de apel de subrutin pot fi date de programator sub form simbolic, de etichet Instruciunide revenire din subrutin: RET i RETI; Instruciunea RETI este recomandat la ncheierea subrutinelor de tratare a cererilor de ntrerupere ntruct, n plus fa de instruciunea RET, reface starea sistemului de ntreruperi la ieirea din rutina de tratare; 4.Instruciunea NOP Este o instruciune fr efect; n mod uzual este folosit pentru ntrzieri sau pentru a nlocui instruciuni care trebuiesc eliminate din program;
26
32. 2 moduri de adresare ale MC9S12DJ256.
Fiecare mod de adresare, cu excepia modului inerent, genereaz o adres efectiv pe 16 bii; este adresa operandului instruciunii; Adresarea inerent: operandul este fie inexistent fie coninut n registrele UC; se mai numete i adresare implicit; Ex.: clra Adresare imediat: operandul este codificat n instruciune; simbolul #; Ex.: ldaa #$55 Adresare direct: instruciunea conine adresa operandului; se mai numete i adresare n pagina 0 ntruct adresa este n domeniul $0000 - $00ff; Ex.: ldaa $55 Adresare direct extins: instruciunea conine ntreaga adres, pe 16 bii; 27
Ex.: ldaa $5555 Adresarea relativ: instruciunea conine un deplasament cu semn, pe 8 sau 16 bii; Adresarea indexat: exist multe variante; folosete un registru pentru a calcula adresa efectiv; Adresare indexat indirect: adresa calculat conine 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 folosete limbajul C ANSI standard: Compilatorul de C pentru microcontrolere admite extensii particulare unei familii de microcontrolere; crete compactabilitatea codului dar scade portabilitatea; Variabile: Bit: 1 sau 0; folosirea sa este o extensie la limbajul standard; Char: valori pe 8 bii cu sau fr semn; se recomand folosirea variabilelor unsigned char i bit ntruct hardware-ul le trateaz n mod direct; variabilele signed char genereaz cod suplimentar; Int: variabila este pe 16 bii; spre deosebire de familia x86, o asemenea variabil este memorat cu c.m.s.o. la adresa cea mai mic; Long: valori pe 32 bii; Float: variabil n virgul flotant, pe 32 bii; Spaii de memorie: code: pentru codul programului i constante care nu se schimb; plasat n memoria fix intern; nu exist instruciuni pentru scrierea n acest spaiu ntruct 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; /*definete variabila flag1, pe un singur bit, plasat n memoria RAM intern*/ code char table1 [ ] = 1,2,3,HELP,0xff; /*definete un grup de 9 octei, plasai n memoria fix, ncepnd cu o adres cu numele table1; caracterele H, E, L, P vor fi memorate sub form de octei ASCII*/ xdata unsigned int temp1; /*aloc un spaiu de 2 octei n memoria RAM extern*/
34. Conectarea memoriei externe la 8051. n general este suficient memoria intern a microcontrolerului ntruct aplicaiile de timp real cer puin 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 tranziiile se vor face prin program; soluie lent; 28
Trebuie cunoscut harta memoriei i modelul de memorie specifice microcontrolerului; La unele microcontrolere poate fi conectat memorie serial, prin magistrala I 2 C; Conectarea memoriei externe la microcontrolerul 8051 Problem tratat; sub 7. Utiliznd liniile de port pot fi conectate oricte 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 cuvnt: 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; 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 cte 16 K este activ la un moment dat; c. Rangurile vor apare la terminalele PORTK 5:0 (XA19 XA14); se concateneaz la A13 0:
30
38. Conectarea memoriei externe la un uc fara magistrale externe. Conectarea memoriei externe la microcontrolerele fr magistrale externe Doar prin intermediul liniilor de port; Doar pentru memorie de date; Transferul va fi lent, ntruct toate tranziiile semnalelor se vor face prin program; prin program se vor transfera datele i se va stabili i direcia porturilor; Numrul de circuite de memorie este limitat doar de numrul liniilor de port ale microcontrolerului; sunt necesare linii de port pentru adrese, date i comenzi; Dac numrul liniilor de port este mare, nu sunt necesare circuite suplimentare; Dac numrul liniilor de port este mic, sunt necesare registre (se face demultiplexarea liniilor de port) i, eventual, decodificatoare; transferul va fi mai lent ntruct un ciclu se va desfura n 2 faze; 31
39. Solutii pentru conectarea porturilor externe la uc 8051. 1. Plasarea porturilor de intrare/ ieire n spaiul de memorie nseamn conectarea porturilor n mod similar cu circuitele de memorie; Comunicarea cu porturile se face cu aceleai instruciuni ca i cu memoriile; Comunicarea este rapid fiind limitat doar de caracteristicile microcontrolerului; Porturile de ieire pot fi conectate doar n spaiul de date; Porturile de intrare pot fi conectate i n spaiul de date i n cel de program; Dezavantaj: ocup din spaiul de memorie (puin important ntruct aplicaiile de timp real cer, n general, puin 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 $
32
5.2. Plasarea porturilor de intrare/ ieire n spaiul de intrare/ ieire Porturile externe vor fi conectate la liniile de port ale microcontrolerului; Semnificaiile liniilor de port ale microcontrolerului sunt cele de intrare/ ieire i nu cele alternative; Nu se recomand utilizarea porturilor care au ca funciuni alternative cele de magistrale de adrese i date; Soluia poate fi aplicat i la microcontrolerele care nu au resurse externe pentru conectarea memoriilor; Restriciile sunt date doar de caracteristicile porturilor microcontrolerului; Soluia este lent ntruct toate tranziiile semnalelor se vor face prin intermediul instruciunilor; 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 $
33
40. Solutii pentru conectarea porturilor la MC9S12DJ256. Aceleasi solutii:
34
2.
41. Enumerati solutii pentru reducerea costurilor (/consumului) in faza de proiectare. Soluii n faza de proiectare Deconectarea intern dinamic; Moduri de lucru cu consum redus; Modificarea frecvenei i a nivelului tensiunii de alimentare; Codificarea pe magistrale de adrese; Codificarea instruciunilor; Deconectarea intern dinamic: deconectarea diferitelor blocuri din procesor, n special nivele din banda de asamblare; reducerea consumului se face fr afectarea ntregului circuit i sistem spre deosebire de modificarea frecvenei i tensiunii de alimentare. Moduri de lucru cu consum redus: implementeaz conceptul de ateptare inteligent; intrarea n aceste moduri se face prin program (SO sau activarea unui rang dintr un SFR) iar ieirea, prin ntreruperi sau hardware; 2 nivele: Modul Idle (Sleep): Partea de execuie a instruciunii din cadrul procesorului este oprit iar restul (sistemul de ntreruperi i memorii, periferice interne) rmne activat; consumul scade semnificativ: de ex. la 80C51 scade de la 16 mA n modul normal la 3,7 mA n modul Idle; Cere puine operaii suplimentare, ceea ce permite intrarea i ieirea de mai multe ori ntr o ms; atunci cnd SO detecteaz c toate firele de execuie ale unui program sunt blocate ateptnd o 35
ntrerupere, un eveniment sau un timeout, ar trebui s instaleze modul Idle; de reinut c ieirea 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 intrri, pot fi folosite ca intrri de ntrerupere pentru a scoate procesorul din modul Idle (de ex. microcontrolerul PIC 16F84, liniile RB4 7); dac sunt n vnt (neconectate le vreo ieire) pot apare tranziii accidentale care vor crete consumul; o Dac sunt ieiri, conteaz setarea: dac sunt legate intern la Vcc prin o rezisten, atunci setarea lor la 0 va crea ci suplimentare de curent adic creterea consumului; Modul Stop: Se oprete ntregul circuit (de ex. prin oprirea oscilatorului intern); Intrarea se face prin program iar ieirea prin Reset sau ntrerupere; Codificarea instruciunilor: Scopul este minimizarea tranziiilor n nivelele din banda de asamblare implicate n aducerea i decodificarea codului instruciunilor; Alocarea de coduri instruciunilor se face prin metode statistice asupra adiacenei configuraiilor;
42. Justificai impactul frecvenei i a tensiunii de alimentare asupra consumului sistemelor ncorporate. Soluii. Modificarea frecvenei i a nivelului tensiunii de alimentare: soluia 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: P total = P static + P short + C SW fV dd 2 + P glitching, , unde P static este puterea consumat datorat curenilor reziduali; are o valoare chiar dac circuitul nu lucreaz; are o pondere nensemnat pentru circuitele CMOS; urmtoarele 3 componente alctuiesc puterea dinamic; P short apare la tranziii atunci cnd cele 2 tranzistoare din etajul final sunt simultan deschise (ptr. o perioad foarte scurt); prin buna proiectare a circuitelor poate fi pstrat la < 10% din puterea dinamic; C SW fV dd 2 este puterea de comutare; este dat de frecvena tactului, de nivelul alimentrii i de capacitatea de comutare care, la rndul ei, depinde de datele care se proceseaz i de capacitatea circuitului care realizeaz comutarea; P glitching este dat de tranziii 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 frecvenei (de ex. exist microcontrolere care pot divide frecvena 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 cteva ordine de mrime mai mare ca cea a magistralelor interne; consumul poate fi redus minimiznd tranziiile liniilor de I/ E ale procesorului Soluia cea mai eficient const n codificarea informaiei trimis pe magistralele externe; ntruct tranziiile de pe liniile de date depind de configuraia 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, 36
Codul Beach i Codul T0: se folosete o linie suplimentar, INC, pentru a evita transferul de adrese consecutive; dac 2 adrese sunt consecutive, linia INC = 1, liniile de adrese rmn nemodificate (pentru a evita tranziii inutile) iar noua adres este calculat la recepie; 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 frecvenei tactului i nivelului tensiunii de alimentare; Instalarea modului low power: Este necesar un mecanism pentru a stabili momentul cnd se va instala modul low power; O soluie: a previziona momentul cnd urmeaz o perioad inactiv, bazat pe istoria funcionrii procesorului; valoarea previzionat devine o metric pentru a determina impactul acestei metode; soluia este potrivit n aplicaii event driven ca de ex. interfee, la care ntrzierea datorat nepotrivirii ntre valoarea previzionat i cea real poate fi tolerat; Modificarea frecvenei tactului i nivelului alimentrii: nseamn adaptarea resurselor procesorului la cerinele taskului curent; Frecvena 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 inndu se cont de un model instruciune consum i optimizarea codului pentru a rula mai rapid i a ocupa mai puin spaiu; Utilizarea unui model instruciune cost: Permite obinerea 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; Influeneaz decizii la nivele de proiectare de sistem ca de ex. partiionarea hardware software; Permite compararea diferitelor procesoare d.p.d.v. al consumului; Asigur suportul pentru dezvoltarea software ului low power; O tehnic pentru obinerea modelului instruciune consum se bazeaz pe msurarea consumului atunci cnd procesorul execut, n mod repetat, aceeai instruciune; tehnica este parial eficient: la unele procesoare nu s au obinut variaii ntre diferitele instruciuni n timp ce la alte procesoare aceste variaii au fost importante. 46. Solutii pentru reducerea consumului la 8051 si pe sistemele bazate pe ele. Reducerea frecvenei tactului, Creterea vitezei nucleului, Integrarea de periferice, Memoria intern, Tactul, mbuntirea modului Stop, Modul Idle, Modurile de management a puterii, Utilizarea ntreruperilor cu MMP, mbuntirea transferurilor n rafal, 37
Execuie rapid i ateptare.
47. Care este impactul memoriei externe asupra consumului uc cu nucleu 8051. Calea cea mai direct pentru scderea consumului este creterea eficienei 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 puin timp pentru a executa aceeai operaie; multe SI portabile lucreaz n rafal, pentru perioade scurte de timp urmate de lungi perioade de ateptare (de ex. citirea unor informaii din mediu, scanarea unui cod de bare etc.); reducerea timpului de execuie va duce la reducerea consumului; Alt consecin: se pot obine performane comparabile reducnd frecvena tactului; dac ciclul are doar 4 perioade, n loc de 12, aceeai operaie se poate realiza cu reducerea frecvenei tactului; fig. arat raportul consum - performan a 3 microcontrolere rulnd acelai task; 2 microcontrolere sunt standard, cu ciclu de 12 stri, iar al 3 lea este performant, avnd doar 4 stri/ ciclu; msurtorile indic o cretere a performanei la microcontrolerul cu 4 stri/ ciclu cu aprox. 250%;
48. Solutii pentru comanda unui comutator cu 8051. Citirea unui comutator Schema:
Codul: 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 mpri n 4 segmente: a. Putere i siguran: i. Managementul motorului; ii. Suspensia electronic; iii. Sistemul de frnare; iv. Direcia; v. Airbags urile; vi. Cutia de viteze; vii. Drive by wire b. Comfort i control: i. Instrumentaia de bord; ii. Luminile; iii. Scaunele; iv. Clima; v. Deschiderea/ nchiderea mainii; vi. Sistemul de alarm; vii. Controlul geamurilor; viii. Recunoaterea vocii; c. Asistarea oferului: i. Vizibilitatea nocturn; ii. Pilotul automat; iii. Asistarea parcrii i mersului napoi; iv. Evitarea coliziunilor; v. Monitorizarea presiunii pneurilor; vi. Lane Departure Warning; 39
vii. Heads Up Display; Ambient (infotainment) i comunicaii: 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 rcire; 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 aplicaii 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 biilor pe linie: prin metoda NRZ (Non Return to Zero): 1 logic nseamn o tranziie a liniei; 0 logic nseamn lipsa tranziiei; Dup 5 bii 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 ctig arbitrarea continu transmisia; 40
Nodul care pierde arbitrarea ateapt pn la eliberarea magistralei; Arbitrarea are loc la nivel de bit prin operaia AND realizat de mediul fizic; exist bii dominani i bii recesivi; atunci cnd 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 ctig arbitrarea continu transmisia; b. Nodul care pierde arbitrarea ateapt pn la eliberarea magistralei; c. Arbitrarea are loc la nivel de bit prin operaia AND realizat de mediul fizic; exist bii dominani i bii recesivi; atunci cnd un nod care transmite un bit recesiv observ un bit dominant, va opri transmisia;
Asta nu cred ca intra!!! d. Cmpul Header este alctuit din: i. Identificatorul cadrului: 1. 11 bii pentru versiunea Standard; 2. 29 bii 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 numrul de octei ai cmpului de date; e. Cmpul Data Field este cmpul de date i are lungimea maxim de 8 octei: f. Cmpul CRC (Cyclic Redundancy Check): asigur integritatea transferului; 41
g. Cmpul Ack: este singurul mecanism prin care transmitorul afl dac data a fost recepionat (nu neaprat de destinatar); h. Cmpul EOF ncheie cadrul; i. Cmpul de date are maxim 8 octei de date iar cadrul poate avea maxim 135 bii, cuprinznd toi biii suplimentari inclusiv biii inserai 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 apariia unei erori pe magistral; un nod transmitor 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 urmtorul:
ntre cadre exist un cmp de 3 bii cu rol de separare; Un cadru este citit de toate nodurile CAN receptoare; Toate aceste noduri filtreaz o parte sau ntregul cmp Identifier utiliznd registre de mascare; acestea trebuiesc programate pentru a stabili receptorul (sau receptorii); Cadrul este valid pentru transmitor dac nu a aprut nici o eroare pn la cmpul EOF; dac exist vreo eroare el va retransmite cadrul atunci cnd magistrala este liber i n concordan cu prioritatea pe care o are; Cadrul este valid pentru receptor dac nu a aprut vreo eroare pn la ultimul bit al cmpului EOF, care nu este luat n considerare; Magistrala poate fi n stare liber un timp nedeterminat; orice nod CAN poate recunoate aceast stare; Dac un nod CAN are un cadru n ateptare l va transmite imediat dup cmpul de separare, cu respectarea prioritii
56. Tipuri de erori si tratarea lor la CAN. Tratarea erorilor: exist 5 tipuri de erori: a. Bit error: orice transmitor CAN asigur i monitorizarea liniei; eroarea este detectat dac bitul primit difer de cel emis; excepii sunt n timpul arbitrrii i al acceptrii; b. Stuff error: atunci cnd sunt detectai 6 bii cu acelai nivel; c. CRC error: atunci cnd cmpul CRC transmis difer de cel calculat de receptor; d. Form error: atunci cnd un cmp cu structur fix conine bii ilegali; e. Acknowledgment error: atunci cnd cmpul de acceptare nu are forma cerut; 42
Un nod CAN care a detectat o eroare va activa un indicator de eroare; acesta poate fi activ sau pasiv, n funcie de poziia 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 numrtoare pentru erori: i. Transmit error count (TEC) i j. Receive error count (REC); k. Numrtoarele sunt incrementate la detecia 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 transmitor va incrementa, cu 8, TEC dac activeaz un indicator de eroare; l. Numrtoarele sunt decrementate n conformitate cu anumite reguli; de exemplu la recepia reuit a unui mesaj; m. Dac valoarea din numrtor este mare (de ex. 96) atunci se consider existena unei defeciuni permanente, de ex, la nivelul nodului sau la nivelul mediului fizic de comunicare; un ex. de defeciune permanent este defectarea oscilatorului unui nod transmitor 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 aplicaii 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 preuri, produse etc.); c. Posibilitate de monitorizare de la distant; d. Comunicare ntre diferite aplicaii (diverse protocoale se nlocuiesc cu TCP/ IP); e. Uniformizarea interfeei cu utilizatorul pentru diferite aplicaii; Completeaz suportul pentru ubiquitous, pervasive and wearable computing; Aplicaii n diverse domenii: domestic, industrial, tiinific, comer, medical, automotive etc Modelul clasic server client: Modelul server client cu microcontrolere:
Modaliti de implementare: Prin conectare direct a sistemelor cu microcontrolere la Internet; 43
Prin conectarea sistemelor cu microcontrolere la un PC care va avea rol de poart la Internet. n primul caz: Au aceleai poziii i ponderi ca sistemele mai mari (PC urile); Soluia cere scrierea unei stive TCP/ IP proprii sau a unui subset al acesteia precum i rezolvarea conectrii fizice la Internet; Soluia 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, rspunde 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 utiliznd 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: 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 ncrcat tamponul circuitului, dup care serializarea i transferul informaiei au loc fr intervenia procesorului; La citire, procesorul este anunat, fie prin un semnal fie prin un rang n octetul de stare, c tamponul de recepie este plin; Operaiile necesare pentru iniializarea unui asemenea controler sunt: Iniializarea circuitului, fie prin un semnal extern fie prin setarea unui rang dintr un registru de control; Deconectarea transmitorului de la linie; operaia este necesar pentru a evita situaia n care date nedorite sunt plasate pe linii n timpul fazei de iniializare; Iniializarea zonelor DMA i a indicatorilor precum i alocarea zonelor RAM pentru transmiterea i recepia datelor n format Ethernet; n unele cazuri alocarea se poate face i dinamic; Programarea controlerului prin ncrcarea adreselor lor n registrele interne; multe controlere pot ncrca aceste adrese n mod automat din o memorie de tip EEPROM; Memorarea datelor iniiale: vitez, numr de bii, moduri de operare etc.; Activarea ntreruperilor (dac sunt utilizate); Reconectare a transmitorului pe linii i setare a rangurilor Tx/ Rx; plaseaz controlerul pe linie i activeaz transmisia i recepia. Transmisia unui format: Se presupune c procesorul a pregtit format valid, inclusiv cmpurile 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 alocrii; se verific dac alocarea a reuit; Plasare a datelor n tamponul DMA; formatul va include adresa, tipul i datele; controlerul va aduga header ul i controlul de erori; Generare o comand de transmisie, setnd 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 trziu, dac linia este ocupat; 45
Ateptare pentru ncheierea transmisiei, fie prin citirea unui indicator fie prin o cerere de ntrerupere; este necesar verificarea strii i tratarea eventualelor erori; Eliberare a memoriei alocate pentru tampon; Recepia unui format: Sesizarea prelurii 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 recepie; ntreruperile pot fi generate de controler la: Transmisie; Recepie: fie la recepia unui format fie la recepia mai multor formate, n funcie de resursele hardware (memorie tampon) ale controlerului; n ultimul caz rutina de tratare va putea transfera mai multe formate, rezultnd ctig de timp; Erori: recepia unui format eronat sau ilegal; Cererea este conectat la o intrare de ntrerupere a procesorului; dac procesorul conine controlerul, cererea va fi intern; 59. Ce inseamna modul TINI(TINY)? Modulul TINI: a. Sistem bazat pe microcontroller Dallas orientat pe aplicaii de tip web server; b. Microcontrollerul include interfee Ethernet, RS 232, I2C, CAN, 1 Wire; c. Ofer suport pentru limbajul Java; d. Include API uri pentru comunicrile seriale; e. Schema bloc:
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. Conine 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/ numrtoare pe 16 bii, ceas de timp real, 24 linii de port; f. Dimensiunea plcii: 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 aplicaii: un web server, o poart RS232 TCP/IP etc.