Sunteți pe pagina 1din 106

Ce este Employability?

(competene)

Un set de atribute, aptitudini i cunotine pe care ar trebui s le posede toi participanii la piaa muncii, pentru a asigura c au capacitatea de a fi eficieni la locul de munc, n folosul lor propriu, al angajatorului i al societii. Ce include Employability: Self-management pregtirea acceptrii responsabilitii, flexibilitii, renunrii, gndirii positive, time management, pregtirea mbuntirii performanelor proprii bazat pe reacii, (feedback) i auto nvrii (self learning). Teamworking respectarea celorlali, cooperare, negociere, convingere, contribuirea la discuii, preocupare pentru interaciune cu ceilali. Business and customer awareness nelegerea bazelor metodelor importante pentru succesul activitii la care se particip, inclusiv importana inovrii i considerarea calcului riscului, nelegerea necesitii obinerii satisfaciei i construirea loialitii clientului. Problem solving analizarea faptelor i a situaiilor, aplicarea gndirii creative pentru a dezvolta soluii potrivite . Communication and literacy aplicarea lingvisticii, abilitatea de a produce mesaje clare, structurate, att n scris ct i oral, abilitatea de a asculta i de a pune ntrebri. Application of numeracy manipularea numerelor, preocupare pentru aplicarea matematicii generale n contexte clasice (msurare, cntrire, estimare, statistic, formule). Application of information technology cunotine IT de baz, word processing, file management, utilizare internet. Ca urmare a acestor caracteristici trebuie s se obin o atitudine pozitiv, o abordare can-do, disponibilitate de a lua parte, de a contribui, de a fi deschis ideilor noi, i energie pentru a le nfptui. entrepreneurship/enterprise: abilitatea de a demonstra o atitudine inovativ, creativitate , colaborare i asumarea riscului.

CUM NE PURTAM PE STRADA


- Cind iesim din casa , este obligatoriu sa avem un aspect ingrijit. Sa fim curati , pieptanati si imbracati decent. - Sa nu fumm - Sa nu aruncam nicioadata hirtii sau resturi pe strada. Sa cautam un cos de gunoi sau sa le pastram pina acasa. - In general , sa nu deranjam pe nimeni cu prezenta noastra. Daca din intimplare lovim pe cineva vom spune politicos : " Pardon ! " sau " Va rog sa ma scuzati ! ". Raspunsul firesc este : " Nu face nimic ! ". - Sa ne abtinem sa facem remarci cu glas tare , s nu vorbim tare la telefon

A intra pe u nu este uor


Ordinea n care se intr pe o u este urmtoarea 1. femeile 2. barbaii pentru persoane de acelai sex: 1. persoanele n vrst 2. tinerii

Capitolul 1- Introducere 1.1. Ce este un sistem cu microprocesor? Microprocesorul reprezint cea mai important realizare a industriei electronice a ultimelor trei decenii. Aparitia sa in 1971 este legata de necesitatea producerii unor circuite integrate pe scara larga (LSI) universale, apte de a fi utilizate intro gama extinsa de aplicatii. Pana la crearea microprocesorului, circuitele integrate, aparute in 1958, erau proiectate pentru o aplicatie anume, ceea ce limita foarte mult extinderea masiva a aplicabilitii acestora. Era necesar un nou concept in ceea ce priveste functionalitatea si flexibilitatea unui asemenea circuit. In acest scop, circuitele n logic cablat, au fost nlocuite cu sisteme n logica programat, lucru ce a permis realizarea, cu un numr redus i standardizat de circuite integrate, a diverselor sisteme de calcul complexe cu o varietate de functii si posibilitati. Un sistem n logic programat , construit n jurul unui microprocesor, poarta numele de sistem cu microprocesor. Structura sa este prezentat in fig. 1.1.

Fig.1.1 Structura sistemului cu microprocesor Microprocesorul (notat consacrat ca CPU- Central Processing Unit - Unitate Central de Procesare) este conectat cu circuitele de memorie (care conin programul de executat i datele de lucru) i cu circuitele de interfa, prin magistralele de date, adrese i comenzi. Rolul interfeelor este de a permite conectarea CPU de mediul nconjurtor astfel nct sistemul cu microprocesor s ndeplineasc cele cinci funcii ale sale: - funcia de INTRARE, culegerea de informatii din exterior (marimi numerice, analogice, semnalizri, date de la alte sisteme de calcul), - funcia de MEMORIE, care permite pastrarea informatiilor (date, rezultate), si a instructiunilor programului;

- funcia ARITMETIC LOGIC, (implementata prin ALU-Arithmetic and Logic Unit- Unitatea Aritmetic i Logic), ce realizeaz prelucrarea datelor (prin diveri algoritmi de calcul si decizie), - funcia de IEIRE, ac ionarea spre exterior (dnd comenzi numerice, analogice, semnalizari diverse, comunicand rezultatele operaiilor efectuate, etc.). - funcia de CONTROL, care nglobeaza totalitatea aciunilor de secvenalizare si control ale activitii sistemului. Circulaia de informaie ntr-un sistem cu microprocesor este prezentat n fig.1.2.

Fig.1.2 Circulaia informaiei ntr-un sistem cu microprocesor Funciile de intrare, ieire i memorare sunt ndeplinite parial de circuitele de interfa, respectiv memorie, i parial de microprocesor (zona gri din fig.1.2.). Funciile aritmetic i logic i cea de control sunt ndeplinite integral de catre microprocesor. Uzual, informatia este adus, prin funcia de intrare, sub coordonarea funciei de control, n memoria sistemului. Informaia poate fi utilizat pentru a indica microprocesorului ce are de fcut (instruciuni ce formeaz un program), sau ca dat in opera ii aritmetice sau logice. n caz general, sub forma de instructiuni, alcatuind programul, informatia poate fi rezidenta in mod permanent in memoria sistemului. Din memorie, tot sub incidena funciei de control, informaia este citit i decodificat de ctre microprocesor, executndu-se n mod secven ial instruciunile programului. Datele i rezultatele sunt deasemenea vehiculate intre procesor si memorie, tot sub comanda functiei de control, conform programului. Dupa caz, coordonat de ctre funcia de control, se activeaz, pentru transfer de informaie spre ieirea sistemului, funcia de ieire.

Structura magistralelor este prezentat n fig.1.3 Fig.1.3. Structura magistralelor sistemului cu microprocesor O detaliere a structurii sistemului este prezentat n fig.1.4.

Fig.1.4. Detalierea structurii sistemului cu microprocesor 1.2. Rolul si locul sistemelor cu microprocesor n funcie de complexitatea i destinaia sistemelor cu microprocesor, acestea pot fi : - Calculatoare Personale (PC) destinate prelucrrii datelor, imaginilor, sunetelor, pentru activiti de uz general, - Echipamente de conducere a proceselor (ECP), destinate conectrii cu procese industriale, monitorizrii i conducerii acestora. ECP au de asemenea o multitudine de structuri ce vor fi detaliate pe parcursul acestui curs. Circuitele de interfa pentru PC sunt: - timere - interfa serial pentru comunicaie ntre PC-uri (ex.RS232, Ethernet) - interfa paralel pentru comunicaie cu imprimanta - interfa pentru controlul ntreruperilor - interfa pentru acces DMA - interfee pentru intrri- ieiri date de la/ctre operator (tastatur, mouse, display grafic) - interfee de intrare-ieire pentru semnale audio

- interfee pentru suport de memorie extern (hard disk, floppy disk, CD, memorie flash) - interfee standard seriale pentru alte dispozitive (USB, Firewire) Circuitele uzuale de interfa pentru ECP sunt: - timere - interfa serial pentru comunicaie ntre PC-uri (RS232, I2C, SPI) - interfa paralel pentru semnale logice de la/ctre proces - interfa pentru controlul ntreruperilor - interfee de intrare ieire pentru semnale analogice (Convertor AnalogNumeric, Convertor Numeric-Analogic) - interfa pentru generarea de semnale PWM. Se observ diferenele notabile privind interfeele celor dou tipuri de sisteme. Diferene exist i la circuitele de memorie, dar acestea vor fi evideniate ulterior. n domeniul automaticii, datorit profilului aplicaiilor, de interes sunt sistemele cu microprocesor destinate conducerii proceselor.

Fig.1.5.Structura unui Sistem Automat Prin definiie, Sistem automat (sistem de conducere automat) - este un sistem ce permite conducerea unui proces la parametrii dorii fr intervenia nemijlocit a operatorui uman. Considerand un sistem automat cu structura din fig.1.5, Dispozitivul de Automatizare (DA) poate fi de diverse tipuri. Istoric, datorit tehnologiei existente, el a fost realizat mecanic, hidraulic, pneumatic, electronic, iar n cea mai recent faz, cu sistem cu microprocesor. Care sunt avantajele utilizarii acestei solutii de Dispozitiv de Automatizare fata de cele anterioare? 1. Flexibilitatea. Deoarece structura DA este realizata prin software, modificarea acesteia presupune doar modificare de program. 2. Simplitatea structurii hardware. Daca la variantele mecanice, electronice, o crestere a complexitatiii DA presupune modificarea echipamentului mecanic sau schemei electronice, in cazul utilizarii sistemului cu microprocesor, cresterea complexitatii DA se reflecta in pstrarea aceluiai hardware dar cu un software mai dezvoltat. Efortul construirii acestui DA este mult redus.

3. Performante crescute. Vitezele de lucru ale componentelor (microprocesoare, circuite de interfa) au crescut spectaculos. 4. Cost redus. Datorita dezvoltarii tehnologice, pretul componentelor sistemelor cu microprocesor este foarte redus si in continua scadere, cele mai mari costuri aparand insa la proiectarea structurii hardware si software. Toate aceste argumente justific introducerea pe o scar majoritar a sistemelor cu microprocesor n conducerea proceselor. Practic nu mai exist sistem de conducere automat care s fie realizat cu alt tip de Dispozitiv de Automatizare. 1.3 Ce este un microcontroler? Un microcontroler este un sistem cu microprocesor ntr-un singur chip. El a fost creat pentru a fi utilizat n conducerea proceselor, avnd toate funciile unui sistem cu microprocesor, ns avnd avantajele - dimensiune foarte reduse n comparaie cu sistemul cu microprocesor, -lipsa circuitelor de interfa i de memorie externe, - lipsa cablajelor i eliminarea perturbaiilor, - creterea vitezei de lucru, - reducerea consumului de energie, - simplitatea operrii, -reducerea preului. Un exemplu de structur de microcontroler este prezentat n fig. 1.6

Fig.1.6. Structura unui microcontroler Se remarc CPU- Unitate Central de Procesare (microprocesorul), i interfeele caracteristice sistemului cu microprocesor destinat conducerii poroceselor. Datorit performanelor sale, microcontrolerele au ptruns n majoritatea aplicaiilor care necesit un grad mai mic sau mai mare de automatizare. Aparatura electrocasnic (maini de splat, cuptor cu microunde, prjitor de pine, televizor etc.), telefoanele mobile, echipamentele de alarmare, autoturismele sunt conduse de microcontrolere mai mult sau mai puin sofisticate i performante. Dac un cuptor cu microunde conine un microcontroler, un autoturism este controlat de cel puin 50 de microcontrolere. Exist o multitudine de tipuri de microcontrolere, cu performane diverse, ns toate sunt structurate dup acelai principiu, un sistem cu microprocesor ntrun singur chip. Ele variaz dup CPU (a microprocesorului) care le controleaz. Dup numrul de bii (de la 8 la 32). Dup interfeele disponibile. Dup memoria pe care o conin, etc. Productorii de microcontrolere ncearc sa creeze produse din ce n ce mai performante i orientate dup aplicaiile pe care le pot conduce. Numrul de circuite externe este redus la minimum, existnd microcontrolere care nu au nevoie de nici o component extern pentru a

funciona la parametri maximi. Din dezvoltarea acestor structuri, au rezultat cteva tipuri de microcontrolere care s- au impus pe pia. Un tip care s-a impus printre primele pe pia, i a rezistat pn astzi datorit performanelor sale optime (optim nu nsemn n acest caz "cel mai bun n mod absolut" ci "cel mai bun pentru o aplicaie") este familia 8051. Un circuit foarte rspndit al acestei familii este 80552 care va fi prezentat n cadrul acestui curs. Alte tipuri de microcontroler sunt: AVR, PIC, ARM fiecare cu caracteristicile sale definitorii. Un tip mai special de sistem cu microprocesor ntr-un chip este Procesorul de Semnal (DSP - Digital Signal Processor). Acesta este foarte performant n prelucrri numerice de semnal, avnd un procesor cu o capacitate de prelucrare foarte mare, vitez de lucru mare, convertoare analog-numerice rapide. Nu este ns dotat cu interfee pentru conducerea proceselor. Firma Texas Instruments a produs un procesor de semnal cu interfee pentru proces, care combin avantajele celor dou tipuri de circuite. Productorii mondiali de microcontrolere sunt:

Analog Devices productor of DSP pe 16-bit i 32-bit cu un consistent sistem de dezvoltare. Produce familia 8051 Convertor A/N pe 12 bit.

Atmel Corporation produce familia 8051, ARM AT91, si AVR

Dallas Semiconductor produce o linie de microcontrolere 8051 cu memorie Flash sau cu baterie. Recent a devenit o divizie a firmai Maxim

Freescale Semiconductor produce microcontrolere de la 8 la 32 de biti 68HC05, 68HC11, 68HC908, 68HC11, 68HC12, 68000, 68020, 68030, 68040, Coldfire, MCore, PowerPC, DSP56800, Fosta denumire a firmai este Motorola.

Hitachi Semiconductor Recent denumirea s-a schimbat n Renesas Technology.

Infineon Technologies produce C16x, C500, TriCore, 8051.

Intel Corporation produce cunoscutele Pentium PC , mixcrocontroler ei o serie de alte componente.

Microchip Technology produce microcontrolerele PICmicro.

National Semiconductor Embedded Microcontrollers produce CompactRISC i COP8 Flash, microcontrolere de putere foarte mic (optime pentru aplicaii wireless, Bluetooth)

Silicon Labs produce familia de microcontrolere 8051 cu Flash rapid, de tipul in-system programmable (programabil prin injectarea n memorie a programului, fr intervenia CPU). Numele anterior al companiei a fost Cygnal Integrated Products.

STMicroelectronics produce microcontrolere ARM pe 32 de bit, ST6 ST7 pe 8 bit si ST9 pe 8/16 bit. .

Texas Instruments leader mondial n producia de DSP, produce de asemenea MSP430, un hibrid ntre microcontroler i DSP.

ZiLOG produce renumitul microcontroler Z8 precum i Z80, eZ80, Z180, Z380

Capitolul 2 MEMORIA SISTEMELOR CU MICROPROCESOR


Mamoria Sistem este locul unde sistemul de calcul pstreaz programele i datele cu care lucreaz la un moment dat. Ea se realizeaz de regul cu circuite integrate. Memoria extern este locul unde se salveaz fiiere (de date sau programe) pentru a fi pstrate spre o utilizare ulterioar. Ea se realizeaz cu hard-disk, compact disk, floppy disk, flash extern, etc. Datorit cerinelor tot mai mari de performan pentru sistemele cu microprocesor (SM), memoria, care este o component important a acestora a trebuit s fie perfec ionat corespunztor, din punct de vedere a vitezei de lucru, a capacit ii de stocare i a dimensiunilor. 2.1. Tipuri de memorie pentru SM de uz general (PC). Principial, exist dou tipuri de memorie sistem, realizate cu circuite integrate: a)- memorie volatil b)- memorie nevolatil Memoria volatil, denumit RAM (acronim de la Random Access Memory) are urmtoarele caracteristici: - coninutul ei se pstreaz doar ct timp circuitul este alimentat, dup deconectarea alimentrii, con inutul se pierde i nu mai poate fi recuperat, - accesul la informa ie este posibil direct la fiecare loca ie (spre deosebire de accesul secvenial n care se pot accesa locaiile doar ntr-o anumit ordine), - fiecare locaie accesat poate fi scris i citit, - scrierea sau citirea nu necesit o micare fizic a memoriei sau a unui cap de citire/scriere (ca in cazul memoriei externe n general) Avantajul major al memorie RAM este viteza de acces la o loca ie, i aceasta nu depinde de poziia loca iei n memorie. Din acest motiv, memoria RAM este folosit ca memorie principal, ca zon de manipulare a aplica iilor i datelor. Pe plcile PC, ea nu este integrat pe plac, ci apare att ca plac sau plci separate, ce pot fi uor schimbate sau adugate, ct i ca zon n microprocesor (memoria cache). Dezavantajul ei este costul ridicat i faptul c informa ia coninut se pierde la deconectarea tensiunii de alimentare. Memoria nevolatil denumit ROM (acronim de la Read Only Memory) are urmtoarele caracteristici: - coninutul ei se pstreaz chiar dup deconectarea alimentrii,

- accesul la informa ie este posibil direct la fiecare loca ie - fiecare locaie accesat poate fi doar citit , - citirea nu necesit o micare fizic a memoriei sau a unui cap de citire/scriere (ca in cazul memoriei externe n general) Avantajul major al acestei memorii este faptul c informa ia rmne nscris i dup deconectarea alimentrii. Dezavantajul este imposibilitatea scrierii simplu a datelor. Exist o multitudine de tipuri de memorii ROM care nltur acest neajuns. 2.1.a) Tipuri de memorii RAM Dup construc ia memoriei, se disting - memorii RAM statice (SRAM) - memorii RAM dinamice (DRAM, SDRAM, DDR RAM, DDR2 RAM) Dup func ia memoriei, se disting - regitri - memoria Cache - memoria principal - memoria componentelor de interfa Memoria RAM Static (SRAM) este o memorie semiconductor, care pstreaz fiecare bit de informaie ntr-un circuit bistabil realizat cu 6 tranzistoare, denumirea "static" provine de la faptul c pstreaz aceast informa ie ct timp circuitul este alimentat (spre deosebire de memoria DRAM). Ea este utilizat n PC, workstations, rutere i echipamente periferice, cache intern, cache extern, buffere de hard disk, ecrane LCD i imprimente, drivere CD ROM, modem-uri. De asemenea BIOS-ul din PC a fost ini ial realizat cu SRAM cu baterie, dar n prezent e realizat cu memorie ROM. Memoria RAM dinamic este un tip de memorie RAM care pstreaz fiecare bit de dat ntr-un condensator n cadrul circuitului integrat. Deoarece condensatorul se descarc prin curentul de descrcare, pierzndu-i astfel informa ia, el trebuie rencrcat periodic. Aceast carecateristic i atribuie denumirea de "dinamic". Avantajul major este c pentru un bit de informaie sunt necesare un condensator i un tranzistor (fa de 6 tranzistoare ca n cazul SRAM), permind astfel o densitate mai mare de integrare, vitez de lucru mai mare i deci pre mai sczut. Dezavantajul major este realizarea unei rencrcri periodice a datelor, operaie denumit "refresh". Chip-urile de memorie DRAM sunt arii (matrice) de celule dotate cu circuite auxiliare pentru citire, scriere i refresh. Sunt aranjate pe rnduri i coloane, fiecare celul avnd o adres unic definit de intersec ia unui rnd cu o coloan. Circuitele moderne con in amplificatoare pentru amplificarea semnalelor i detectarea ncrcrii fiecrei celule, logica de adrese pentru selectarea rndului i coloanei, regitri interni care gestioneaz operaia de refresh.

Opera ia de refresh const n citirea unei celule de memorii nainte de descrcarea condensatoarului. De regul aceasta se realizeaz la un interval de 60-70 nsec, care reprezint i timpul de acces la memorie. Cea mai dificil sarcin n lucrul cu DRAM este rezolvarea cerinelor de timing. DRAM este un circuit asincron, ce rspunde cerinelor de citire/scriere imediat ce ele apar. Din acest motiv este necesar, pentru o funcionare corect i eficient, respectarea secvenei i a timingului semnalelor care se aplic. Acestea sunt: - Row Address Select, /RAS , selec ia rndului - are sarcina de a pstra adresa rndului i de a iniia un ciclu de memorie. Este primul semnal dintr-o operaie. Acest semnal este folosit i pentru ciclul de refresh (o citire a unui rnd este deajuns pentru rencrcarea lui). - Column Address Select, /CAS , selecia coloanei - are sarcina de a pstra adresa coloanei i de a iniia operaia de scriere/citire. Ciclul de refresh nu implic semnalul /CAS. - Adresa este utilizat pentru a specifica locaia celulei ce se dorete a fi accesat. Pinii de adres sunt multiplexai n chip, astfel: se plaseaz pe liniile de adres, rndul care va fi accesat, i se valideaz semnalul /RAS, se plaseaz apoi pe aceleai linii de adres coloana i se activeaz /CAS. - Write enable /WE - este utilizat pentru a se selecta o opera ie de scriere sau citire ("0" logic pentru scriere). Semnalul apare dup /CAS. - Output enable /OE - la activarea acestui semnal, data apare disponibil la pinii de date. La scriere, semnalul este ignorat. - Data In/Out DQ - pin utilizat pentru transferul datelor la/de la memorie. n cadrul operaiei de scriere, data aplica la pini este transferat n memorie la apariia semnalului /WE. La citire, dup semnalul /OE data este diponibil la pin. Dac nici un semnal nu este activ, linia este n starea de nalt impedan (high Z). Memoria SDRAM (Synchronous DRAM) se bazeaz pe faptul c n general accesul la memorie de ctre Unitatea Central este secven ial, cea mai probabil dat care urmeaz este cea plasat n continuare n memorie. Pentru aceasta, un counter din interiorul circuitului permite ca adresa de coloan s fie incrementat rapid, astfel nct citirea secvenial a datelor s fie fcut foarte repede (n modul burst- o tehnic de transfer rapid care genereaz o o serie de adrese consecutive, de fiecare dat cnd este solicitat o singur locaie din memorie. Tehnica se aplic att citirii ct i scrierii). Aceasta are avantajul cre terii vitezei de scriere/citire pna la 10 nsec. Memoria DDR SDRAM (Double Data Rate) este o alt versiune performant a DRAM. Dac n mod tradiional transferul de date se desfoar pe un sigur front de clock (ori urctor ori cobortor), n cazul DDR DRAM , transferul se

face pe ambele fronturi (i urctor i cobortor), dublnd astfel viteza de lucru fr modificarea frecvenei. Memoria DDR2 SDRAM este o dezvoltare a variantei DDR DRAM att n planul vitezei ct i al consumului. - Dac DDR DRAM asigur 266, 333 sau 400 Megatrasferuri pe secund (MTps), DDR2 DRAM ajunge la 400, 533, 667 sau 800 MTps. - Memoria DDR2 con ine o arhitectur ce permite un prefetch mai rapid dect DDR. - Tensiunea de alimentare pentru DDR2 este de 1.8V fa de 2.5 V a lui DDR. Memoria SIMM. Chip-urile de memorie sunt n general con inute n capsule DIP. Cu ele se formeaz module de memorie pe o plac, cu un conector n linie. Un astfel de modul se nume te SIMM (SIngle In line Memory Module). Deoarece sunt plasate perpendicular pe placa de baz, ocup pu in spaiu.

1. DIP 18-pin (DRAM chip) 2. SIPP

3. SIMM 30-pin

4. SIMM 72-pin

5. DIMM 168-pin (SDRAM)

6. DIMM 184-pin (DDR SDRAM)

7. DIMM 240-pin (DDR2 SDRAM Modulele de memorie au evouluat de la memoria SIPP (Single In-line Pin Package) cu 30 de pini, prezent la sistemele 80286 (2) la SIMM pe 30 de bii (3), de 72 de bi i cu o capacitate de pn la 64MB (4), la DIMM pe 168 pini (pe dou rnduri, de fiecare parte a plcii)(5), DIMM cu 184 pini pentru DDR DRAM (6) i 240 pini pentru DDR2 DRAM.

Memoria cache L1 Cache este o memorie n interiorul microprocesorului, utilizat de acesta pentru a reduce accesul la memoria principal. Se bazeaz pe aducerea i copierea unor zone des utilizate din memoria principal. Memoria cache de nivel 1 este implementat cu memorie SRAM i e de dimensiune 16KB. Ea con ine cele mai frecvent utilizate date i segmente de cod, actualiznd memoria principal doar cnd procesorul are alte task-uri.

Memoria cache L2 Memoria cache de nivel 2 este o memorie intermediar ntre memoria principal i procesor. Ea este realizat tot cu SRAM, i este amplasat pe placa de baz, avnd dimensiunile de 512 KB. Folose te pentru transferul rapid n tehnologia burst.

Memoria principal Al treilea i cel mai important nivel de memorie din sistemul cu microprocesor este memoria principal. Este o memorie DRAM care realizeaz transferul de date cu hard disk-ul. Numrul de bii de date ntr-un cuvnt determin dimensiunea magistralei procesor. n prezent se lucreaz cu cuvinte de 64 de bi i (adic 8 octei sau byte) 2.1.b) Tipuri de memorii ROM n cadrul evolu iei lor, memoriile de tip ROM au trecut prin cteva faze foarte importante pentru funcionalitatea lor. Astfel, prima memorie, denumit ROM (Read Only Memory) are con inutul programat de productor, conform unei comenzi a utilizatorului. Memoria are coninutul fix i nu suport nici o modificare.

PROM (Programmable Read Only Memory), memorie furnizat fr informa ie nscris, dar care poate fi programat de utilizator o singur dat. EPROM (Erasable Programmable Read Only Memory) care poate fi nscris de utilizator i tears n ntregime cu lumin ultraviolet. n acest scop are prevzut un geam de sticl prin care lumina ultraviolet poate terge con inutul su. Este momentul cnd memoriile nevolatile se dezvolt cel mai mult, scrierea i tergerea lor fiind accesibil oricrui utilizator. EEPROM (Electrically Erasable Programmable Read Only Memory) este cea mai flexibil memorie nevolatil, ea putnd fi scris in-circuit, asementor unui ciclu de scriere a memoriilor RAM. Diferen a const doar n timpul mai lung pentru scrierea unei locaii a acestui tip de memorie. FLASH este un tip de memorie EEPROM utilizat n general ca suport de programe de aplicaii, suport de memorie extern. O caracteristic definitorie a memoriei FLASH este faptul c tergerea se poate realiza doar pe zone de memorie, nu pe locaie ca n cazul memoriei EEPROM, Aceste memorii nu sunt folosite pentru a stoca date de lucru, temporare, ci doar programe de aplica ie, sisteme de operare, tabele de parametri, n general date care nu se modific prea des i care sunt necesare i dup ntreruperea alimentrii. Se utilizeaz n general n sisteme cu microprocesor sau microcontroler care lucreaz independent, fr memorie extern, n sisteme embedded, etc. 2.2. Tipuri de memorie pentru SM utilizate n Echipamente de Conducere a Proceselor (ECP) n cazul ECP, sistemele cu microprocesor sau microcontroler sunt de tipul embedded (ncorporate), au structur simpl construit special pentru o aplica ie, nu au n general suport de memorie extern, programele rezidente (prencrcate n sistem) sunt n memorii nevolatile. Memoria din aceste sisteme este att SRAM (n general pentru pstrarea datelor de lucru), i memorii EEPROM sau FLASH pentru pstrarea programelor de aplicaie sau a tabelelor de parametri. 2.2.a) Exemplu de memorie RAM static Hitachi HM62256A Este o memorie CMOS (Compelmentary Metal Oxid Semiconductor), de 32 kcuvinte de 8 bit (256 kbit). Caracteristici: vitez mare de acces 85/100/120/150 nsec putere disipat mic (5W n standby, 40mW n operare) o singur tensiune de alimentare de 5V ieire three-state (high Z) datorit consumului redus este potrivit de a fi alimentat de la baterie

Fig.2.1. Capsula memoriei RAM

Fig.2.2. Tabela funcionrii memoriei RAM

Fig.2.3. Ciclul de citire a memoriei RAM

Fig.2.4. Ciclul de scriere a memoriei RAM

Fig.2.4. Parametrii dinamici (AC) ai memoriei RAM

2.2.b) Exemplu de memorie EPROM ST 2764 Este o memorie nevolatil, de 8 kcuvinte de 8 bit (64 kbit). Se prezint n dou variante - care poate fi tears cu lumin UV - care nu poate fi tears (varianta PROM sau OTP One Time Programmable) Caracteristici: vitez mare de citire 100 nsec vitez de scriere 1 min putere disipat mic (500W n standby, 150mW n operare) 105 cicli de scriere durata pstrrii informa iei scrise 10 ani tensiune de alimentare 5V tensiune de programare 12V semntur electronic a productorului i a produsului

Fig.2.5.Schema func ional a memoriei EPROM

Fig.2.6.Modurile de operare ale memoriei EPROM

Fig.2.7.Pinout-ul memoriei EPROM

Fig.2.8.Ciclul de citire a memoriei EPROM

Fig.2.9. Ciclul de programare al memoriei EPROM Pentru tergerea coninutului EPROM-ului este necesar expunerea ferestrei de tergere la o lumin ultraviolet cu frecvena sub 4000. innd cont c lumina soarelui i a unor lmpi fluorescent are frecvene ntre 3000-4000, aceasta poate terge con inutul EEPROM-ului astfel: lumina lmpii fluorescente n 3 ani, lumina soarelui ntr-o spt mn. Din acest motiv se recomand aplicarea unei etichete protectoare pe geamul circuitului. Frecven a recomandat de tergere este de 2537, aplicnd o energie de 15Wsec/cm2 , pentru aceasta se va folosi o lamp UV cu puterea de 1200Wcm2 la distan a de 2.5 cm, pe o durat de 15-20 min.

2.2.c) Exemplu de memorie EEPROM - ATMEL AT28C256 Circuitul AT28C256 este o memorie n tehnologie CMOS, de 256 Kbit organizat pe 32Kocte i. Are timpul de acces la citire de 150nsec i un curent de 50mA (n standby de 200A). Memoria suport 104 pn la 105 cicli de scriere cu o durat de reinere de 10 ani. Se alimentaz cu o tensiune de 5 V.. Circuitul poate fi accesat ca o memorie RAM static, f r nici o component adiional. Conine regitri de pagin de 64 octei, lucru ce permite scrierea a 1 pn la 64 octei simultan (deoarece scrierea este mai lent det l amemoria RAM static (3 pn la 10 ms pe pagin)adresa i cei 1 la 64 octe i de dat sunt pstrai n latch, fapt ce permite eliberarea magistralelor). Dup ncrcrea adresei de pagin i a datelor, n timpul unui ciclu de scriere, adresa este incrementat automat i scrierea este realizat fr asistena procesorului. Sfr itul scrierii este semnalizat printr-un fanion pe pinul de dat I/O7. Dup ncheierea ciclului de scriere, un alt ciclu de citire sau scriere poate fi ini ializat.

Fig. 2.10 Pinout-ul i funciile pinilor circuitului de memorie EEPROM Operarea cu circuitul de memorie EEPROM.

Fig.2.11. Funciile memoriei EEPROM i modurile de operare Citire. Circuitul este accesat ca i o memorie RAM static. Data din memorie de

la adresa de pe magistral este citit dac CE i OE sunt la nivel LOW i WE este HIGH. Liniile de date sunt in stare de High Impedance (High Z, tri-state, impedan ridicat) dac una dintre CE sau OE sunt la nivel HIGH. Vezi fig.2.12

Fig.2.12. Ciclul de citire al memoriei EEPROM Scriere pe octet. Circuitul poate fi scris fr a fi ters n prealabil. Exist i opiunea de tergere a ntregului chip. Un impuls negativ pe liniile WE sau CE (cu CE respectiv WE pe nivel LOW), i OE pe nivel HIGH, iniiaz un ciclu de scriere. Adresa este memorat pe frontul cobortor al CE sau WE, oricare dintre ele coboar ultimul, iar data este memorat de primul front ridictor al WE sau CE. Odata ciclul iniiat el se va derula automat, sfr itul su va fi semnalizat de bitul de dat I/O7 citit printro aciune de citire de tip Polling. Vezi fig.2.13.

Fig.2.13 Ciclul de scriere al memoriei EEPROM

Scrierea pe pagin Circuitul AT28C256 permite scrierea unei pagini de 1 pn la 64 de octe i. Opera ia de scriere pe pagin este ini iat ca i scrierea pe octet, primul octet putnd fi urmat de ali 63 de octei, fiecare dintre ei trebuind s fie scrii la cel mult 150 s distan. Liniile de adres A6-A14 (care denot o pagin) trebuie s fie men inute constante pe parcursul scrierii celor 1 la 64 octei. Liniile A0 la A5 specific adresa octetului n pagin. Vezi fig. 2.14

Fig.2.14. Scrierea pe pagin Data Polling. Aceast opera ie se execut pentru a determina dac ciclul de scriere s-a ncheiat. O ncercare de citire a datei pe parcursul ciclului de scriere (ct timp scrierea nu s-a ncheiat) va rezulta prin citirea ultimului bit complementat pe pinul I/O7. Cnd scrierea s-a ncheiat, bitul este trecut la valoarea sa adevrat . si operaiile de citire/scriere pot fi iniiate din nou. Ciclul de tergere. Memoria EEPROM nu trebuie tears nainte de a fi scris. Se poate genera un ciclu de tergere a ntregii memorii.

2.2.d) Exemplu de memorie FLASH - AMD Am28F256 Memoria FLASH Am28F256 este o memorie nevolatil de 256Kbit organizat pe 32Koctei. Este o memorie rapid, cu ciclul de citire de 70nsec. Pentru scriere ns are nevoie s fie tears n prealabil (opera ie ce dureaz n medie 1 sec), tergerea fcndu-se pe ntregul chip. Pentru tergere i scriere este necesar aplicarea unei tensiuni suplimentare VPP de 12V, care nu este necesar la operaia de citire. Opera ia de scriere dureaz 10 sec. Curentul consumat este de 30 mA maximum n cicli activi (scriere, tergere, scriere i de 100 A maximum n standby. Suport minimum 104 cicli de scriere/tergere

Pinii memoriei FLASH sunt prezenta i n fig.2.15

Fig.2.15. Pinii memoriei FLASH Opera ia de citire se execut identic cu memoriile EEPROM. Pentru tergere i scriere ns, ciclii sunt specifici. n fig.2.16 i 2.17 sunt prezentate ordinograma i diagrama temporal a operaiei de tergere. Circuitul de memorie este programat s execute aceast operaie astfel: Se dau dou comenzi de tergere, prima pentru setare, a doua de startare a execu iei. Circuitul , n prim faz scrie toat memoria cu 00h dup care terge tot con inutul (octeii vor avea valoarea FFh). n ncheiere, este necesar verificarea corectitudinii datelor. Dac aceasta nu s-a ncheiat corect (exist bii care nu sunt seta i pe 1 logic)se relanseaz operaia de tergere. Se estimeaz c sunt necesare, n mod normal, 100 de repet ri a tergerii pentru ncheierea acesteia cu succes. Dac dup 1000 de cicli memoria nu este tears, se consider eroare de tergere i se renun.

Fig. 2.16. Ordinograma opera iei de tergere

Fig.2.17. Diagrama temporal a opera iei de tergere Opera ia de scriere octet cu octet, se desfoar tot dup un program, prezentat n fig. 2.18, cu diagrama n fig.2.19.

Fig.2.18. Ordinograma operaiei de scriere

Fig.2.19. Diagrama temporal a opera iei de scriere.

2.3. Organizarea memoriei la microcontrolerul 80C552 din familia 8051 Unitatea central a microcontrolerul 80C552 manipuleaz operanzi n trei zone de memorie (vezi fig.2.20): - memorie de program extern1 de dimensiune de pn la 64Koctei - memorie de date extern de dimensiune de pn la 64Kocte i - memorie de date intern de 256 octei suprapus cu 128 octei de memorie ce conine Regitri cu Func ii Speciale (SFR)2. n total 384 octe i.

Versiunea 83C552 conine 8Koctei de memorie program intern, selectabil cu pinul EA SFR sunt locaii de memorie cu funcie de registru prin care CPU comunic cu periferia microcontrolerului - att date ct i comenzi. Inclusiv Acumulatorul, PSW, Stack Pointer-ul i Data Pointer-ul sunt inclui n SFR. Nu fac parte din SFR, avnd o alt locaie, Program Counter-ul i cele 4 Blocuri de regitri de uz general.
2

Fig.2.20 Organizarea memoriei la microcontrolerul 80C552 Memoria de date intern este divizat n 3 seciuni: partea de jos de 128 octei de RAM Data intern (de la 0 la 127), partea de sus de 128 octe i de RAM Data intern (de la 128 la 255) i zona de 128 octe i de SFR (de la 128 la 255). Ultimele dou zone (SFR i zona 128 la 255) mpart aceeai arie de adresare, sunt deci suprapuse, selecia se face prin modurile de adresare.

Capitolul 3 ELEMENTE DE INTRARE/IEIRE ALE SISTEMELOR MICROPROCESOR Sistemul microprocesor trebuie s interac ioneze cu lumea inconjuratoare. Este necesara att primirea (citirea) de informaii, din afara acestuia, ct i, pe baza calculelor efectuate, furnizarea de informaii, comenzi etc., spre exterior. Unitatea centrala (CPU) efectueaz multiple opera ii interne, ns este necesar comunica ia acesteia cu exteriorul, fr de care func ionalitatea sistemului ar fi practic inexistent. Astfel, comunicaia cu unitatea central reprezint transferul datelor prin unele module, numite interfee, realizat ntr-un mod selectiv i controlat (nu exclusiv - vezi tehnicile DMA), de ctre microprocesor. Deoarece singura cale de comunica ie dintre procesor i exterior este reprezentat de magistrala de date a sistemului, (utiliznd totodat magistralele de adrese si control), este necesar sa se utilizeze circuite speciale care sa converteasca informatiile diverse, de la o gam foarte larg de echipamente i componente de intrare si ieire, la semnale compatibile cu cele de pe magistralele sistemului microprocesor. Aceste circuite, care implementeaza o func ie de compatibilizare, se numesc module de interfa (sau module de intrare-ieire). Conven iile utilizate pentru a implementa aceast comunica ie, incluznd temporizarile semnalelor, controlul procesului de transfer de date, modul de reprezentare (codificare) a datelor, alctuiesc aanumitul protocol al comunicatiei.

Functia de baza a modulelor de interfa este aceea de a converti semnalele de pe magistralele CPU pentru seturile de porturi de intrare sau iesire. Un port reprezinta astfel o colectie de componente ale sistemului la care se pot conecta echipamente externe (periferice).

Fig.3.1. Schema bloc a sistemului cu microprocesor Dupa cum s-a precizat si in paragrafele precedente, gama arhitecturilor i a implement rilor diverselor sisteme microprocesor este extrem de larg, fr o standardizare a funciilor si/sau semnalelor magistralelor acestora. Pe de alt parte, aceste sisteme diverse vor trebui s interac ioneze cu gama, deasemenea larg i nu neaprat unitar , a echipamentelor periferice, utiliznd o palet important de semnale, viteze de lucru si protocoale de comunica ie. Compatibilitatea intre opera iile interne ale procesorului si aceste semnale externe se va asigura de catre o mare varietate de tipuri de interfee. Uzual, firmele producatoare de microprocesoare asigur i circuitele specializate, compatibile cu tipurile de microprocesoare produse de ctre acetia, pentru a se implementa diversele interfee specializate. Astfel, comunica ia ntre microprocesor i echipamentele externe are loc in dou etape succesive: - prima, n care transferul are loc ntre CPU i interfa, - a doua , n care comunica ia are loc ntre interfa i periferic. Uzual, primul stadiu se denumeste operatie de intrare-iesire, iar al doilea, operaie de transmisie a informa iilor. n consecin, interfeele de intrare/ieire reprezint calea de legtur ce asigur transferul de date ntre microprocesor i exteriorul lui. Exist numeroase posibiliti pentru realizarea acestor legturi. n func ie de configuraia sistemului i de cerinele aplicaiei, se pot utiliza structuri mai simple sau deosebit de complexe. Pentru un sistem cu microprocesor, exist urmtoarele interfee: 1. Interfaa de comunica ie serial- bidirecional, permite comunicarea cu alte sisteme cu microprocesor. 2. Interfaa paralel bidirec ional, permite citirea i generarea informaiilor sub form logic (0 sau 1), pe nivelul de tensiune specific (ex. TTL 0 logic 0Volt, 1 logic 5V). 3. Interfaa analogic compus din - convertorul Analog-Numeric de intrare, permite citirea de ctre sistemul numeric cu microprocesor a semnalelor de tensiune analogice

convertorul Numeric-Analogic de ieire, permite generarea de ctre sistemul numeric cu microprocesor ctre un periferic sau proces, a semnalelor de tensiune analogice. 4. Timer/Counter (Temporizator/ Numrtor) bidirecional, permite citirea informa iei coninut n limea impulsurilor, generarea de impulsuri de l ime programabil, numrarea de evenimente. 5. Arbitrul de intreruperi intrare. permite gestionarea cererilor de acces a interfeelor la microprocesor. 6. Generatorul de semnal PWM ie ire, permite de generarea de semnale cu factor de umplere programabil, ctre periferie sau proces. innd seama c elementele de intrare asigur preluarea informaiei - dintr-o forma accesibil omului (reprezentri - caractere, litere, cifre, imagini tv.), -de la elemente diverse ale instala iilor industriale (semnalizri, traductoare etc.), respectiv cele de ieire furnizeaz - informa ii utilizabile de ctre operatorul uman (mesaje tiprite, semnalizri audio-vizuale, sintez de voce), pentru comanda, acionarea elementelor echipamentelor industriale(tensiuni, curen i), se poate aprecia gama deosebit de larg de tipuri i configuraii n care se vor prezenta att interfeele de intrare/ieire, ct i perifericele sistemelor microprocesor. Semnale exterioare de o mare varietate a formelor de prezentare (analogice, numerice, de alta natur dect electrice), trebuie convertite la formele de informaie, limitate, acceptate de ctre microprocesor. Conversii similare trebuie efectuate la ieirea spre exteriorul sistemului microprocesor. Trebuie adaptate deasemenea vitezele de lucru diferite ale perifericelor, respectiv ale microprocesorului. Uzual, acesta lucreaz mult mai rapid, putnd efectua numeroase opera ii, n timp ce, de exemplu, se preia un caracter de la o consol (prin apsarea unei clape a acesteia) i se pregte te ntr-o form adecvat citirii de ctre microprocesor. De asemenea, exist i echipamente foarte rapide (discuri magnetice), care pot furniza/prelua informaii ctre/de la memoria sistemului, cu viteze mai mari dect cele ce pot fi obtinue dac transferul se efectueaza de ctre microprocesor (sub comanda acestuia). In aceste cazuri, se utilizeaz aa-numitele tehnici de transfer a informaiei prin acces direct la memorie (DMA- Direct Memory Access), pentru care accesul ntre interfa i memoria sistemului se face sub controlul unui circuit specializat, fr controlul programului microprocesorului. Exist trei moduri principale de lucru cu elementele de intrare/ieire, permi nd controlul si sincronizarea transferului de date:

(a) Operaii de intrare/ieire efectuate sub controlul programului; (b) Operatii de intrare/ieire prin ntreruperi; (c) Operatii de intrare/ieire prin acces direct la memorie. Tipul de operaie I/E utilizat ntr-o aplica ie va depinde de -rata de transmitere a datelor, -intrzierea maxim cu care microprocesorul poate prelua/transmite datele din momentul disponibilit ii echipamentului care le vehiculeaz, posibilitatea executrii, intercalat cu opera iile I/E, a altor operaii ale unitii centrale. Din punctul de vedere al programrii microprocesorului, pentru operaii de I/E, acestea se pot efectua prin executarea de -instruciuni specifice de I/E, -instruciuni proprii operrii cu elemente de memorie n orice caz, pentru diferen ierea ntre diversele echipamente ale sistemului, acestea sunt selectate n mod unic, conform informaiei de pe magistralele de adrese i de control, n mod asemntor seleciei celulelor de memorie. Porturile sistemului vor prelua sau transmite informaia sub form de cuvinte de date, de lungime specific procesorului (8, 16 bit). Accesul la magistrala de date va fi fcut prin circuite tampon. Astfel, tehnicile generale de adresare si selectie de cip ale porturilor vor fi similare celor de la memorii, cu unele particulariti specifice, care vor fi men ionate n paragrafele urmtoare. Ca o mentiune speciala, trebuie remarcat c, spre deosebire de memorii, unde la o adres se va gsi o singur celul de memorie, aceeai i pentru opera iile de scriere i pentru cele de citire, la operaiile cu porturi, este permis, i se i intlnesc situatii n care o aceeai adres este utilizat pentru dou interfee diferite, una de intrare, i alta de ieire. Aceasta deoarece pot exista porturi doar de intrare, i altele doar de ieire, deci cu flux unic al datelor, doar de la sau doar spre microprocesor. 3.2 Opera ii I/E efectuate sub controlul programului Una dintre cele mai accesibile i utilizate metode de efectuare a operatiilor de I/E este sub controlul nemijlocit al programului microprocesor. Astfel, prin instruciuni specifice, care determin selec ia porturilor de I/E ale sistemului, microprocesorul efectueaz opera ii de transfer de date ntre aceste interfete si CPU.

Exista dou tipuri de baz (din punctul de vedere al semnifica iei), de informaie transmis ntre microprocesor i portul de intrare/ieire, i anume -cuvintele de control -cuvintele de date

Fig.3.2. Tipurile de informaii transmise ntre microprocesor i interfa Cuvintele de control sunt utilizate pentru sincronizarea opera iilor portului i ale microprocesorului, i setarea/testarea unor parametri, opera ii necesare n vederea transmiterii cuvintelor de date. Folosite n opera ii de scriere spre port, cuvintele de control sunt denumite cuvinte de comand a portului i permit, prin afectarea pentru fiecare bit al cuvntului, a unei semnifica ii unice, programarea portului (pentru porturile care pot fi programate). Astfel se pot iniia unele opera ii sau seta unii parametri (modificarea ratei de transmisie a datelor, stergerea unui indicator de eroare etc.). Citirea cuvintelor de control, denumite in acest caz cuvinte de stare, permite, prin testarea prin program a biilor cuvntului citit de la port, analizarea strii acestuia (dac are sau nu informaie disponibil, dac poate prelua alt cuvnt de date, dac transferul s-a efectuat corect etc., n funcie de posibilit ile i funciile portului) i luarea de decizii adecvate de ctre microprocesor (n spe, se vor executa n mod corespunztor acele seciuni din programul sistemului care trateaz situaia existenta). Locaiile n care sunt pstrate, n modulele de interfa, cuvintele de comand, de stare sau de de date se numesc respectiv, regitri de comand, regi tri de stare, regitri de date La efectuarea operaiilor de intrare/ieire sub controlul programului, se pot utiliza:

(a) instructiuni specifice de I/E. caz n care microprocesorul este prevzut cu semnale pe magistrala de control, diferite pentru operaiile cu memoria, respectiv cu porturile. Se conecteaza att memoria ct i porturile la magistralele de adrese si de date ale sistemului, dar se utilizeaz semnale de control distincte pentru cele

doua categorii de componente ale sistemului. Fig 3.3. Selecia diferit a interfeelor i a memoriei Se utilizeaz dou instruciuni I/E, una pentru intrare, alta pentru ieire, att pentru cuvintele de date, cat si pentru cele de control. Se vor utiliza n acest caz minimum dou adrese pentru un port, pentru a diferenia opera ia ce se efectueaz , referitor la date sau control. Cele dou instruc iuni tipice, ce se definesc in acest caz, vor fi: (1) citire informaie (cuvnt de dat sau de stare); (2) scriere informaie (cuvnt de dat sau de comand). Pentru acest tip de opera ie de I/E, este necesar minimum un semnal de control care s diferenieze sensul transferului datelor (citire sau scriere), care corelat cu adresa de la / la care se face transferul, s poat defini n mod unic operaia ce se execut. Metoda este una dintre cele mai ntlnite tehnici de utilizare a porturilor de I/E. Figura 3.3 prezint structura de principiu a sistemului n acest caz. (b) nu se folosesc instructiuni separate de I/E. Se va adresa portul ca o celula de memorie. (Poart numele de mapare a interfeei ca memorie) Se configureaz memorie in sistem, mai puin dect capacitatea maxima a acestuia. La adresele rmase libere se va asigura selec ia portului respectiv. (Deci, la aparitia semnalelor de adresa corespunzatoare i a celor de control, proprii lucrului cu celula de

memorie respectiv, se va selecta de fapt i se va vehicula informaie cu portul dorit). Dei memoria sistemului devine astfel mai mic, acesta este un impediment minor, compensat n primul rnd de faptul c paleta de posibilit i oferit de instruciunile de tip lucru cu memoria este mult mai larg. (Din punctul lui de vedere, microprocesorul va efectua opera ii cu o celula de memorie, nu cu un port). Operaiile tipice pentru a efectua transferul datelor vor fi in acest caz: (1) incarcare data (citire cuvant de data sau stare); (2) memorare data (scriere cuvant de data sau comanda). Figura 3.4 prezinta structura de principiu a sistemului in acest caz.

Fig.3.4. Maparea interfeei ca memorie Modalitatile de utilizare in program a cuvntului de control sunt, n principal, date de o secven de program, de genul: (a) se scrie cuvantul de comand la port, pentru a cere transferul de cuvnt de date; (b) se cite te cuvntul de stare de la port; (c) se verific biii de stare ce indic posibilitatea transfer rii datelor; (d) se reiau paii b-c, pn ce portul este gata de transfer; (e) se cite te (scrie) cuvntul de date. O astfel de secven poate aprea pe parcursul programului principal al microprocesorului, metoda purtnd numele de polling.

3.3. Operatii de intrare/ieire efectuate prin ntreruperi

Operarea prin ntreruperi este bazat pe utilizarea unor semnale de control specifice, lansate de la periferice, ctre microprocesor, anuntnd un eveniment semnificativ la nivelul acestora (date disponibile pentru a fi preluate, posibilitatea acceptrii de noi date de la procesor etc.). Lucrul n ntreruperi permite operarea aparent simultan a mai multor programe distincte ale microprocesorului. n principal, aceast tehnic este aplicat pentru controlul i lucrul cu echipamentele periferice si pentru implementarea sistemelor ce opereaza n timp real (efectund anumite opera ii -masur tori, calcule, comenzi), la intervale predeterminate de timp, sincronizate cu un proces. Baznduse pe faptul c, n general, procesorul are viteza de lucru net superioar perifericelor, el lucreaz cu fiecare doar la "cererea" acestuia, putnd astfel s serveasc mai multe dintre ele, la vitezele lor de lucru. Sistemul de ntreruperi va permite acest mod de solu ionare a problemei. ntr-o form simplificat , apariia unei ntreruperi la procesor determin urmtoarele evenimente: terminarea instruciunii curente a microprocesorului; memorarea valorii contorului de program (PC) in stiv; ncarcarea PC cu o adresa de program, predefinit; inhibarea ntreruperilor i continuarea execuiei de la noua adres a PC.

3.4 Opera ii de I/E efectuate prin acces direct la memorie Accesul direct la memorie (DMA) este utilizat n cazul transferurilor foarte rapide de date, care se efectueaz de la/la periferice cu viteze de lucru superioare celei a microprocesorului. Se permite astfel transferul de informaii fr a se opera sub controlul programului procesorului. n cazul transferurilor DMA, transferul de date ntre periferice i memoria sistemului este coordonat de catre un controler specializat pentru aceste transferuri, programat n prealabil de ctre microprocesor (n vederea cunoaterii adreselor unde/de unde s se fac transferul de date de la/la periferice). Opera iile DMA se intreptrund cu opera iile normale ale sistemului. Exist trei metode uzuale pentru transferuri DMA. Una dintre ele oprete microprocesorul, pe cand celelalte doua interfereaza cu operatiile sale curente. Metoda de oprire a activitatii procesorului (HALT) implic, la apariia unei cereri de acces DMA, terminarea efectu rii instruciunii curente a procesorului, urmat de trecerea tuturor pinilor acestuia (pe magistralele de date, adrese si control) in starea de mare impedan i permite efectuarea transferurilor DMA pe aceste magistrale. Dezavantajul metodei const in faptul ca vor fi necesare cteva cicluri-main din momentul apariiei cererii de transfer, pn la posibilitatea satisfacerii acesteia.

Uneori, aceasta intarziere poate fi prea mare. Avantajos este faptul c, odat ob inut, controlul magistralelor poate fi men inut pentru

transferuri orict de lungi. Fig.3.5. Tehnica de transfer DMA. O alta metod const n oprirea microprocesorului n cadrul instruciunii curente, la terminarea ciclului de instruciune curent. Se ob in timpi de rspuns mult mai buni, deci performante sporite. Se pot transfera deasemenea seturi mari de date, la o astfel de ntrerupere a executiei programului.

Capitolul 4 PORTURI SPECIALIZATE Timer/Counter 4.1 Ceasuri programabile noiuni generale Funcionarea sistemelor cu microprocesor n aplicaii de proces necesit, n majoritatea cazurilor, realizarea unor temporizri precise ntre diversele aciuni efectuate n sistem sau msurarea cu precizie a unor intervale de timp. n acest scop, se utilizeaz aa-numitele ceasuri de timp real (Real Time Clock RTC), circuite ce pemit obinerea unor temporizri programate sau msurri de intervale, cu precizie ridicat. Aceste circuite au funcia de generare de semnale de lime programat, msurare de intervale de timp sau de numrare de evenimente. n primele dou cazuri funcia se numete TIMER, n cel de- al treilea caz, funcia se numete COUNTER, de unde i denumirea circuitului de Timer/Counter. n cadrul funciei de Timer, circuitul folosete ca intrare un semnal de frecven fix ca Tact sau Ceas de referin, pentru msurare sau generare. n cadrul funciei Counter, circuitul folosete ca intrare un semnal extern pentru care se dorete msurarea numrului de tranziii. n acest capitol vor fi prezentate dou circuite Timer/Counter, o variant pentru un sistem cu microprocesor, ca circuit extern, i o variant de circuit inclus ntr-un microcontroler. 4.2. Circuitul de interfa Timer/Counter al microcontrolerului 80C552 Preliminarii Microcontrolerul 80C552 conine patru circuite Timer/Counter pe 16 bit denumite Timer 0 - T0 , Timer 1 - T1, Timer 2 - T2 Timer 3 Watchdog T3. Ele sunt grupate, dup funciile pe care le pot ndeplini astfel: T0 i T1 sunt timere cu posibiliti asemntoare i ndeplinesc funciile unui timer de uz general. T2 este un timer cu posibiliti foarte dezvoltate, este capabil de a msura i genera semnale cu o precizie foarte mare. Timerul T3 poate fi folosit doar pentru a urmri funcionarea corect a programului microcontrolerului. Timerele T0 i T1 Sunt circuite pe 16 bit ce pot fi programate s ndeplineasc urmtoarele funcii: - msurare de intervale de timp sau de lime de impuls - numrare de evenimente - generare de cerere de ntrerupere ctre unitatea central (CPU)

Acestor circuite le corespund urmtorii regitri ai microcontrolerului (SFR): TH0, TL0 TH1, TL1 TMOD TCON. Programarea lor i schimbul de date se face prin aceste SFR. Ambele circuite sunt formate din 2 regitri (SFR de date) de 8 bii (THx, TLx cu x=0 sau x=1) care se incrementeaz la o tranziie 1- 0 a semnalului de la intrare. Cnd sunt configurate Timer (Temporizator), T0 i T1 sunt incrementate de semnalul de ceas sistem (quartz-ul sistemului divizat cu 12) la fiecare ciclu main (la o perioad de (1/frecvena sistem)*12, deci a 12 parte din frecventa ceasului sistem, pentru un ceas de 12MHz, ciclul main este de 1 sec). Cnd sunt configurate Counter (Numrtor), T0 i T1 sunt incrementate la fiecare tranziie 1- 0 a semnalului de pe pinul corespunztor celor dou timere. T0 i T1 pot opera n 4 moduri de lucru . Modurile 0, 1 i 2 sunt comune celor dou timere, pe cnd modul 3 este diferit. a) modurile de lucru 0 i 1 ale T0 i T1. n acest mod ele funcioneaz ca un numrtor (Counter) pe 8 bit cu un divizor de 1 la 32. (vezi fig.4.1.)

Fig.4.1. Structura T0 i T1 n modul de lucru 0 Indicele x poate fi 0 sau 1, deoarece ambele circuite au aceeai funcionare. Incrementarea poate fi generat de ceas sistem (C/~T=0, timer) sau de semnal extern (C/~T=1, counter). Validarea incrementrii este dat de

bitul GATE (TMOD.7 sau TMOD.3) =0 sau semnalul extern ~INTx=1, i simultan bitul TRx (TCON.6)=1. La atingerea valorii de 1 pentru toi cei 13 bii, impulsul urmtor va determina trecerea tuturor biilor pe 0 cu setarea (punerea pe 1) bitului TF1 (fanion de depire, sau Overflow care poate fi considerat i ca fanion de intrerupere). Poziionarea pe 1 poate nsemna i cerere de ntrerupere care va fi luat n considerare doar dac a fost validat prin programarea ntreruperilor. Modul de lucru 1 pentru ambele circuite este identic cu modul 0, cu diferena c registrul de date este pe 16 bit, nu pe 13 bit. b) Modul de lucru 2 configureaz regitrii T0 i T1 pe 8 bit (TLx) cu rencrcare automat (vezi fig.4.2.)

Fig.4.2. Structura T0 i T1 n modul de lucru 2 O depire la TLx (Overflow) seteaz bitul TFx i comand renscrierea n TLx a aceluiai octet, pastrat n THx. Rencrcarea las THx nemodificat. c)Modul de lucru 3 Acest mod de lucru este diferit pentru cele 2 timere. T1 menine n acest mod coninutul su nemodificat (acelai efect ca i cum validarea de la TR1=0). T0 este configurat ca dou numrtoare separate de 8 bit ca n fig.4.3. TL0 folosete biii C/~T, GATE, TR0, ~INT0 i TF0. TH0 funcioneaz ca timer i utilizeaz biii TR1 i TF1 de la T1.

Fig.4.3. Structura T0 n modul de lucru 3 Regitri cu funcii speciale (SFR) pentru T0 i T1. SFR de control pentru T0 i T1 sunt TMOD i TCON. Ei au urmtoarea configuraie:

TMOD GATE MSB pentru timer T1 C/T M1 M0 GATE pentru timer T0 C/T M1 M0 LSB

primii patru bii se refera la T0 iar urmtorii patru se refer la T1. GATE - daca GATE=1 si bitul de control TRx = 1, Tx este validat doar daca pinul /INTx=1 ( control hard ); daca GATE =0 numaratorul este validat doar daca TRx=1 ( control soft) C/~T\ - 0 - Tx functioneaz ca timer, 1- Tx funcioneaz ca numarator; M1 M0 - modul de operare; 0 0 - Modul 0 0 1 - Modul 1 1 0 - Modul 2 1 1 Modul 3

TCON TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

TF1 - setat hard la depasire T1 ; resetat hard la saltul in rutina de tratare intrerupere TR1 - setat/resetat prin program pentru a porni/opri pe T1 TF0 - setat hard la depasire T0 ; resetat hard la saltul in rutina de tratare intrerupere TR0 - setat/resetat prin program pentru a porni/opri pe T0 IE1 - setat hard la detectie intrerupere externa 1; resetat hard cand intreruperea este tratata IT1 - setat/resetat prin program pentru a stabili semnalul activ la INT1: front negativ/nivel 0 IE0 - setat hard la detectie intrerupere externa 0 ; resetat hard cand intreruperea este tratata IT0 - setat/resetat prin program pentru a stabili semnalul activ la INT0: front negativ/nivel 0

Timer T2 Timer-ul T2 este un numrtor pe 16 bit (TMH2 i TML2) care poate numra impulsuri de ceas (cnd este configurat ca Timer) sau semnale externe de la pinul T2 (cnd este configurat ca numrtor), printr-un circuit divizor programabil cu 1, 2, 4 sau 8. Timer-ul T2 poate fi doar citit, nu poate fi nscris, iar resetarea se poate face de la semnalul RESET extern sau de la semnalul RT2 extern (dac acesta este validat prin bitul TM2ER din TM2CON). Oprirea se face din registrul TM2CON biii T2MS1 T2MS0. La depire (Overflow) pe 8 sau 16 bit, se poate genera, dac este validat, o cerere de ntrerupere. Adresa rutinei de tratare a ntreruperii este aceeai, selecia tipului de ntrerupere (pe 8 sau 16 bit) se face din TM2CON, cu biii T2IS0 respectiv T2IS1. La ntrerupere, se mai seteaz dou fanioane, ce trebuie resetate prin software, T2B0 i T2OV din TM2CON respectiv T2IR. Validarea ntreruperii se face din registrul de ntreruperi IEN1 bit 7. Registrul de control a Timerului T2, TM2CON:

TM2CON T2IS1 T2IS0

T2ER

T2BO

T2P1

T2P0

T2MS1

T2MS0

T2IS1 - valideaza generare ntrerupere la depire capacitate T2 ( pe 16 biti ) T2IS0 - valideaza generare ntrerupere la depire capacitate T2 ( pe 8 biti - octetul inferior ) T2ER - validare reset extern pentru T2; T2B0 - fanion intrerupere depire capacitate T2, pe octet; T2P1 T2P0 - stabilesc coninutul registrului de divizare; 0 0 - factor de divizare 1 1 0 - factor de divizare 4 0 1 - factor de divizare 2 1 1 - factor de divizare 8 T2MS1 T2MS0 - selectare mod de lucru pentru T2; 0 0 - T2 este oprit; 1 0 mod test ( nu se folosete) 0 1 - se foloseste tact intern 1 1 semnalul de tact este extern la pinul T2. Structura timerului T2 este prezentat n fig.4.4.

Fig.4.4. Structura timerului T2 Logica de capturare la Timerul T2 Timerul T2 este conectat la 4 regitri de capturare, CT0, CT1, CT2, CT3. Aceti regitri sunt ncrcai cu coninutul timerului T2 (TMH2 i TML2) atunci cnd microcontrolerul primete semnalele externe CT0I, CT1I, CT2I, respectiv CT3I pe front pozitiv sau negativ. n momentul capturii, se seteaz fanioane (flag) din TM2IR i se poate genera de asemenea i ntrerupere. Registrul care configureaz T2 pentru procesul de capturare este CTCON: CTCON CTN3

CTP3

CTN2

CTP2

CTN1

CTP1

CTN0

CTP0

CTN3 - capturare pe frontul negativ (pentru CT3I)

CTP3 - capturare pe frontul pozitiv (pentru CT3I) CTN2 - capturare pe frontul negativ (pentru CT2I) CTP2 - capturare pe frontul pozitiv (pentru CT2I) CTN1 - capturare pe frontul negativ (pentru CT1I) CTP1 - capturare pe frontul pozitiv (pentru CT1I) CTN0 - capturare pe frontul negativ (pentru CT0I) CTP0 - capturare pe frontul pozitiv (pentru CT0I) Registrul fanioanelor de ntrerupere este TM2IR: TM2IR T20V

CMI2

CMI1

CMI0

CTI3

CTI2

CTI1

CTI0

T20V - fanion de ntrerupere la depire T2 pe 16 biti CMI2 - fanion de ntrerupere corespunztor lui CM2 CMI1 - fanion de ntrerupere corespunztor lui CM1 CMI0 - fanion de intrerupere corespunztor lui CM0 CTI3 - fanion de ntrerupere corespunztor lui CT3 CTI2 - fanion de ntrerupere corespunztor lui CT2 CTI1 - fanion de ntrerupere corespunztor lui CT1 CTI0 - fanion de ntrerupere corespunztor lui CT0 Structura T2 n regim de captur este prezentat n fig.4.5

Fig.4.5. T2 n regim de captur Exemplu de utilizare a facilitii de capturare a T2 Dac se dorete msurarea limii unui impuls Tx, acesta este adus la una dintre intrrile de captur (de ex. CT0I). Registrul este setat s captureze att pe frontul pozitiv, ct i pe cel negativ. Se seteaz i ntrerupere. Cnd apare primul front al semnalului, registrul de captur CT0 se ncarc cu valoarea curent a timerului T2 i se genereaz un semnal de ntrerupere. n rutina de tratare a ntreruperii, valoarea din CT0 se salveaz ntr-o variabil N1. La apariia celui de-al doilea front, din nou coninutul lui T2 este capturat n CT0, iar n rutina de tratare a ntreruperii se salveaz i aceast valoare n N2. Prin diferena cu valoarea anterioar se determin durata impulsului. Trebuie s se in seama i de eventuala depire pe 16 bit a T2, contorizat de variabila k. n acest caz durata impulsului este : Tx=N2+k*65535-N1.

Logica de comparare la Timerul T2 La fiecare incrementare a T2, coninutul a trei regitri CM0, CM1 i CM2 este comparat cu noua valoare a T2. Cnd se sesizeaz o coinciden (match), se seteaz fanionul corespunztor din TM2IR, se modific biii portului 4 de ieire conform setrii regitrilor STE i RTE, i se poate de aemenea genera ntrerupere dac este setat aceast opiune. STE TG47

TG46

SP45

SP44

SP43

SP42

SP41

SP40

TG47- fanion (informare), daca este 1, P4.7 este setat la urmatoarea comutare; daca este 0, P4.7 este resetat la urmatoarea comutare TG46- fanion (informare), daca este 1, P4.6 este setat la urmatoarea comutare; daca este 0, P4.6 este resetat la urmatoarea comutare SP45 - dac este setat "1", P4.5 este setat dac CM0 si T2 coincid SP44 - dac este setat "1", P4.4 este setat dac CM0 si T2 coincid SP43 - dac este setat "1", P4.3 este setat dac CM0 si T2 coincid SP42 - dac este setat "1", P4.2 este setat dac CM0 si T2 coincid SP41 - dac este setat "1", P4.1 este setat dac CM0 si T2 coincid SP40 - dac este setat "1", P4.0 este setat dac CM0 si T2 coincid Daca STE.i sunt 0, atunci P4.i nu este afectat de coincidenta CM0 si T2 ( i = 0, 1, 2, 3, 4, 5 ) RTE TP47 TP46 RP45 RP44 RP43 RP42 RP41 RP40

TP47 - dac este setat "1", P4.7 basculeaz (toggle) dac CM2 si T2 coincid TP46 - dac este setat "1", P4.6 basculeaz (toggle) dac CM2 si T2 coincid RP45 - dac este setat "1", P4.5 este resetat dac CM1 si T2 coincid RP44 - dac este setat "1", P4.4 este resetat dac CM1 si T2 coincid RP43 - dac este setat "1", P4.3 este resetat dac CM1 si T2 coincid RP42 - dac este setat "1", P4.2 este resetat dac CM1 si T2 coincid RP41 - dac este setat "1", P4.1 este resetat dac CM1 si T2 coincid RP40 - dac este setat "1", P4.0 este resetat dac CM1 si T2 coincid Daca RTE.i este 0, atunci P4.i nu este afectat de coincidena CM1 si T2 sau CM2 si T2 Structura T2 n regim de comparare este prezentat n fig.4.6.

Fig.4.6. Structura T2 n regim de comparare Setarea ntreruperilor pentru timerul T2 Regitri care permit selectarea ntreruperilor sunt IEN0 i IEN1. Bitul EA valideaz posibilitatea de a selecta o ntrerupere. Dac este pe 0, toate ntreruperile sunt invalidate. Dac bitul EN este pe 1, fiecare ntrerupere poate fi selectat individual. IEN0 EA EAD ES1 ES0 ET1 EX1 ET0 EX0

EA - setat valideaza generarea de intreruperi, iar resetat invalideaza toate intreruperile EAD - setat valideaz ntreruperea de la ADC ES1 - setat valideaz ntreruperea de la interfata I2C ES0 - setat valideaz ntreruperea de la interfata UART ET1 - setat valideaz ntreruperea de la Timer T1 EX1 - setat valideaz ntreruperea externa 1 ET0 - setat valideaz ntreruperea de la Timer 0 EX0 - setat valideaz ntreruperea externa 0

IEN1 ET2

ECM2

ECM1

ECM0

ECT3

EXT2

ECT1

ECT0

ET2 - valideaza ntreruperea data de depasirea capacitatii lui T2 ECM2 - valideaz ntreruperea de la comparatorul 2 al T2 ECM1 - valideaz ntreruperea de la comparatorul 1 al T2 ECM0 - valideaz ntreruperea de la comparatorul 0 al T2 ECT3 - valideaz ntreruperea de capturare 3 de la T2 ECT2 - valideaz ntreruperea de capturare 2 de la T2 ECT1 - valideaz ntreruperea de capturare 1 de la T2 ECT0 - valideaz ntreruperea de capturare 0 de la T2 Fiecare ntrerupere are o adres fix a rutinei de tratare a ei, conform tabelului.

Cap.5. Convertorul Analog-Numeric


5.1 Introducere

Microcontrolerul 80C552 conine un Convertor Analog-Numeric1 (CAN) on-chip. El este format dintr- un multiplexor analogic cu 8 canale (ci) i un convertor binar pe 10 bit bazat pe principiul aproximrilor succesive. Durata unei conversii este de 50 s (pentru un quartz de 12 MHz). Pentru evitarea inter influenrii ntre partea analogic i cea numeric n microcontroler, CAN are circuite de alimentare i tensiune de referin separate de restul microcontrolerului. 5.2. Conversia Analog-Numeric

Fig.5.1. Schema bloc a CAN n microcontrolerul 80C552 Figura 5.1 prezint schema bloc a CAN din microcontrolerul 80C552. El conine: - Blocul CONTROL Conversie (BCC) care gestioneaz toate semnalele n interiorul convertorului. El este programat prin SFR. - Multiplexorul MUX 8 la 1, cu 8 canale de intrare de la portul 5 al cmicrocontrolerului i o ieire, selecia canalului de intrare fcnduse de ctre BCC. - Blocul REGISTRU Aproximri succesive pe 10 bit, care conine codul curent al valorii intermediare,
1

Se mai utilizeaz i termenul de Convertor Analogic-Numeric, dar este o problem de lingvistic i nu una tehnic.

Blocul CNA Convertor numeric-analogic care genereaz o tensiune VDAC pentru a fi comparat cu tensiunea de intrare VIN Blocul Comparator ce compar tensiunea de intrare VIN cu cea generat de CNA, VDAC.

Convertorul analog- numeric este deservit de doi regitri SFR, ADCON i ADCH. Pe un pin al portului P5 se aplic un semnal analogic cu valoare ntre AVREF- i AVREF+, care stabilesc astfel un domeniu de intrare (AVREF+AVREF-). Canalul multiplexorului este selectat prin pinii ADCON.0 . ADCON.1. ADCON.2 ai registrului SFR ADCON. Conversia poate fi lansat prin hardware sau prin software. Selecia modului de lansare se face cu bitul ADEX (ADCON.5). Dac bitul este 0, lansarea conversiei se poate face doar prin software, dac bitul este 1, lansarea se poate face i prin hardware. Lansarea prin software se face cu bitul ADCS (ADCON.3) pus pe 1 (la sfritul conversiei el este pus pe 0 de hardware, deci nu trebuie resetat prin software). Lansarea prin hardware se face aplicnd un impuls de tensiune 1 de cel puin un ciclu main (1 s) pe pinul STADC. n primii doi cicli main se iniializeaz convertorul. Ieirea multiplexorului este conectat la intrarea comparatorului. Semnalul este eantionat (tensiunea este memorat ntr-un condensator ce aparine comparatorului). Eantionarea dureaz 8 cicli main, timp n care tensiunea trebuie meninut constant la intrare (se estimeaz o vitez de variaie maxim numit slew rate - pentru tensiunea de intrare pentru a avea o conversie corect , de 10mV/ms).

Fig.5.2. Circuitul de intrare al CAN Blocul de control a conversiei controleaz timpii eantionrii i conversiei. Dup eantionarea semnalului, ncepe procesul de conversie propriuzis. Comparatorul compar valoarea lui VIN cu ieirea convertorului numeric-analogic VDAC. Aceast valoare este determinat de ieirea Registrului de aproximri succesive. La nceput, acesta seteaz (pune pe 1 logic) CMS bit al su (10 0000 0000B). Dac tensiunea VDAC generat de CAN (50% din domeniu AVREF+ - AVREF- ) este mai mic dect VIN, bitul CMS este lsat pe 1. Dac este mai mare, bitul este trecut pe 0. Cu aceasta se ncheie primul pas. n al doilea pas se seteaz bitul urmtor (11 0000 0000B sau 01 0000 0000B) i se compar din nou VIN cu VDAC. Bitul este lsat pe 1 sau trecut pe 0 n funcie de rezultatul comparrii. Ciclul se repet de 10 ori, pentru fiecare bit. La sfrit, Registrul aproximrilor succesive conine rezultatul conversiei pe 10 bit, care este ncrcat n regitri SFR ADCH (cei mai semnificativi 8 bii) i n ADCON.7 i ADCON.6 (cei mai puin semnificativi 2 bii).

Fig.5.3. Exemplu de lucru a CAN pentru 3 bii

Fig.5.4. Exemplu de lucru

Conversia dureaz patru cicli main pe bit. Sfritul conversiei este indicat prin setarea fanionului ADCI (ADCON.4). n acelai moment bitul ADCS este resetat de hardware. O conversie n derulare nu este afectat de un nou start a conversiei prin hardware (pe pinul STADC) sau prin software (bitul ADCS). Rezultatul conversiei este pstrat ct timp ADCI este pe 1, aceasta nsemnnd c bitul ADCI trebuie restat prin software pentru a permite o nou conversie. O conversie n derulare este oprit dac se intr n modul de lucru Power down sau Idle, n timp ce , dac conversia este terminat (ADCI=1) rezultatul se pstreaz la intrarea n modul Idle.

Fig.5.5. Diagrama de timp a conversiei 5.3. Calculul mrimii de ieire a CAN CAN are 2 mrimi caracteristice statice -domeniul de tensiune de intrare AVREF+-AVREF-numrul de bii N. Din aceste dou mrimi se deduce cuanta q a CAN, care reprezint pasul de variaie a tensiunii de intrare pentru modificarea cu 1 a mrimii de ieire (sau modificarea LSB sau CMPS bit).

n figura 5.6. este prezentat caracteristica intrare- ieire a CAN.

Fig.5.6. Caracteristica CAN

Pentru calculul rezultatului conversiei RC se folosete formula:

unde VIN este tensiunea aplicat la intrare.

5.4. Structura registrului ADCON ADC.1 ADC.0 ADEX ADCI ADCS AADR2 AADR1 AADR0

ADC.1 Bitul 1 al valorii convertite ADC.0 Bitul 0 al valorii convertite ( cel mai puin semnificativ ) ADEX valideaz posibilitatea startului extern al conversiei (cnd este setat, permite startul conversiei intern, prin software sau extern, prin semnalul de la pinul STADC , cnd este resetat permite doar startul prin software) ADCI fanion de ntrerupere; este setat prin hardware, cnd rezultatul unei conversii este disponibil, i trebuie resetat prin program n rutina de tratare a ntreruperii ADCS bit de start si fanion de stare. La setare prin software, lanseaz conversia. La sfirsitul acesteia ADCS este resetat si ADCI setat . AADR2, AADR1, AADR0 selecia unei intrri analogice ca intrare la convertorului analog- numeric. Acesti bii pot fi modificai doar cnd ADCS si ADCI sunt 0 5.5. Conexiunile la CAN Decuplarea Microcontrolerul 80C552 conine att circuite logice (numerice), care lucreaz cu semnale logice (0V sau 5V), ct i circuite analogice care lucreaz cu semnale analogice (n domeniul 0-5V). Pentru a evita circulaia curenilor dintr- un tip de circuite n cellalt tip de circuite, i de a influena astfel semnalele analogice, alimentarea analogic AVDD ar trebui separat de alimentarea logic VDD, iar masa analogic AVSS ar trebui legat de masa logic VSS printr-o linie de impedan sczut. Pentru circuitele de alimentare aceasta se realizeaz prin decuplare cu condensatoare de 100nF plasate ct mai aproape de pinii AVDD i VDD, i adiional folosirea unor bobine de 1 la 5 H. Dac se asigur aceste condiii, se poate folosi o singur surs de tensiune, ca n figura 5.7.

Fig.5.7. Planul de conexiuni la alimentarea microcontrolerului Conectarea circuitelor externe Circuitele externe conectate la microcontroler trebuie s fie plasate ct mai aproape de acesta pentru a reduce buclele de semnal i impedanele comune. n condiii improprii de plasare a componentelor, semnalele externe pot cauza funcionarea defectuoas a microcontrolerului. Dac ele nu pot fi plasate aproape de microcontroler, trebuie conectat un filtru RC ca n fig. 5.8. Rezistorul trebuie plasat aproape de ieirea sursei, iar condensatorul ct mai aproape de intrarea destinaiei. Uzual condensatorul are 470 pF, rezistorul plasat la intrarea 80C552 are 1kOhm iar cel de la ieirea 80C552 are 100Ohm. n nici un caz nu se vor pasa condensatoarele filtrului dire ct la ieirea circuitului surs

Fig.5.8. Plasarea componentelor externe

Cap.6. Interfaa de comunicaie serial rs232, sistemul de ntreruperi, generatorul de semnale PWM,
6.1 Interfata seriala UART a microcontrolerului 80C552

Interfata seriala UART a microcontrolerului 80C552 funcioneaz dup protocolul RS232. Ea permite transmisia i receptia simultan ("full duplex"). De asemenea poate incepe receptionarea unui al doilea octet ( caracter ) nainte ca cel anterior receptionat sa fie citit din interfata ( totusi, daca primul octet nu este citit inainte ca cel de-al doilea sa fie complet receptionat, unul din ei se pierde ). Registrele pentru transmisie respectiv receptie ale interfetei seriale sunt adresate prin SFR S0BUF. Dac se scrie n S0BUF, implicit se incarc registrul de transmisie, iar dac se citete din S0BUF, procesorul ncarc octetul recepionat. 6.1.1. Moduri de lucru Controlul interfetei seriale se realizeaz prin registrul S0CON. S0CON SM0 SM1 SM2 REN TB8 RB8 TI RI Interfata serial poate opera n patru moduri selectabile prin biii SM0 ( S0CON.7 ) si SM1 ( S0CON.6 ) astfel: 0 0 - modul 0 ; rata fosc/12 0 1 - modul 1 ; rata variabila 1 0 - modul 2 ; rata fosc/64 sau fosc/32 1 1 - modul 3 ; rata variabila SM2 - setat valideaza comunicatia multiprocesor in modurile 2 si 3; in modul 0, SM2 trebuie pus pe zero REN - setat valideaza receptia seriala; validarea sau invalidarea se face prin program TB8 - bitul 9 de date care va fi transmis in modurile 2 si 3; setat/resetat prin program RB8 - bitul 9 de date care a fost receptionat in modurile 2 si 3; in modul 1, daca SM2=0, RB8 este bitul de stop care a fost receptionat; in modul 0 nu este utilizat TI - fanion de intrerupere la transmisie; setat hard la sfirsitul bitului 8 in modul 0 sau la inceputul bitului de stop in celelalte moduri; trebuie resetat prin program

RI - fanion de intrerupere la receptie; setat hard la sfirsitul bitului 8 in modul 0 sau la jumatatea bitului de stop in celelalte moduri (mai putin in cazul precizat la SM2); trebuie resetat prin program n modul 0 sunt transmi i sau receptionai 8 bii. Rata de transfer este fix la 1/12 din frecvena de oscilaie. n modul 1 sunt transmisi ( prin TxD ) sau recepionati ( prin RxD ) 10 biti : 1 bit de start ("0"), 8 bii de date si 1 bit de stop ("1"). La receptie bitul de stop ajunge n bitul RB8 ( S0CON.2 ). Rata de transfer este variabil. n modul 2 sunt transmii ( prin TxD ) sau recepionai ( prin RxD ) 11 biti : 1 bit de start ("0"), 8 bii de date, 1 bit de date programabil i 1 bit de stop ("1"). La receptie bitul programabil ajunge n bitul RB8 ( S0CON.2 ) in timp ce bitul de stop este ignorat. La transmisie bitul programabil se preia din TB8 ( S0CON.3 ) si poate fi pus pe "1" sau "0" ( de exemplu bitul de paritate P (PSW.0 ) poate fi copiat n TB8 ). Rata de transfer este programabila la 1/32 sau 1/64 din frecvena de oscilaie. Modul 3 este similar cu modul 2, cu excepia ratei de transfer care este variabil. In oricare din cele patru moduri, transmisia este activata prin orice instructie care scrie n registrul S0BUF. In modul 0 receptia este activata prin conditiile RI ( S0CON.0 ) = 0 i REN ( S0CON.4 ) = 1. In celelalte moduri, receptia este activata numai prin conditia REN=1. REN este un bit care valideaza/invalideaza receptia si este setat/resetat prin soft. RI si TI sunt flaguri de ntrerupere pentru receptie respectiv transmisie setate prin hard si resetate prin soft. ntr-o aplicaie, lucrul cu interfa a serial RS232 se poate realiza n dou moduri : prin interogare ( polling ) cu intreruperea serial invalidat. n acest caz, se testeaza prin program biii RI si TI din S0CON. La recepie, dac RI este setat, in registru de receptie ( S0BUF ) exista un caracter disponibil care trebuie citit de unitatea centrala. La transmisie, daca TI este setat, interfaa a ncheiat de trimis caracterul, registrul de transmisie este gol i unitatea centrala poate scrie un alt caracter n acesta.

prin intreruperi. In acest caz, programatorul trebuie sa scrie o subrutina de tratare a intreruperii unde se ajunge automat ( prin mecanisme hard ) atunci cind biii de ntrerupere sunt setai. Deoarece exist un singur vector de intrerupere pentru UART, la inceputul subrutinei se testeraza biii RI i TI pentru a stabili sursa intreruperii. Un program pentru interfaa serial cuprinde o funcie de iniializare a interfeei, o funcie pentru receptie octet respectiv transmisie octet ( daca se lucreaza cu interogare ), o functie de intrerupere ( daca se lucreaza cu intreruperi ). Functia de initializare ( pentru UART, de exemplu : void InitSerial(void) {...}) realizeaz urmatoarele actiuni : programare S0CON ( modul de lucru, comunicatie multiprocesor, validare receptie, etc. ) programare Timer1 si bit SMOD ( PCON.7 ) pentru generarea ratei de transfer seriale conform Tabel 1 pornire Timer1 si invalidare intrerupere pentru Timer1 validare sau invalidare intreruperi pentru UART validare transmisie ( TI = 0 ) Functia de intrerupere ( de exemplu : Serial0() interrupt 4 {...} ) realizeaz urmtoarele aciuni : testare RI si TI pentru determinarea sursei de intrerupere ( receptie sau transmisie ) resetarea fanionului gasit activ citirea octetului receptionat sau transmiterea unui octet alte actiuni specifice aplicatiei

6.1.2. Facilitati de comunicatie multiprocesor Modurile 2 i 3 ofera facilitati pentru comunicatia multiprocesor. Astfel, bitul programabil ( bitul 9) ajunge la receptie in RB8, dupa care urmeaza bitul de stop. Interfata seriala poate fi programata prin SM2 ( S0CON.5 ) astfel incit, dupa receptia bitului de stop, flagul de intrerupere RI va fi activat doar daca RB8=1. O posibilitate de a exploata aceast facilitate este urmatoarea : daca un procesor "master" vrea sa transmita un bloc de date unui "slave", va trimite mai intii un octet de adresa ( cu bitul 9 pe 1 ) ; daca toate procesoarele "slave" au programat SM2=1 ele vor fi intrerupte de acest octet de adresa si vor putea testa daca sunt efectiv adresate ; cel adresat va pune SM2=0, pregatindu-se astfel pentru a receptiona octetii de date ( care au bitul 9 pe 0 ) care vor urma, n timp ce celelalte procesoare "slave" isi continua activitatea.

Exemplu : Consideram o structura formata dintr-un master si trei module slave cu adresele 01H, 02H, 03H. Etapele unei comunicatii seriale multiprocesor sunt urmatoarele : toate modulele ( master si slave ) au programat bitul SM2 = 1 masterul trimite adresa 01H cu bitul 9 setat ( TB8 = 1 ) toate modulele slave receptioneaza adresa si testeaza daca aceasta corespunde cu adresa proprie. Numai slave-ul cu adresa 01H va programa bitul SM2 = 0 masterul trimite datele cu bitul 9 resetat ( TB8 = 0 ) care pot fi receptionate doar de slave-ul cu adresa 01H. Dupa incheierea transferului slave-ul va reprograma SM2 = 1 masterul trimite adresa 02H cu bitul 9 setat ( TB8 = 1 ) s.a.m.d. 6.1.3. Rata de transfer seriala n modul 0 rata de transfer este fix i egal cu 1/12 din frecvena de oscilaie. n modul 2, rata de transfer depinde de valoarea bitului SMOD ( PCON.7 ). Daca SMOD=0 ( dupa reset ), rata de transfer este 1/64 din frecvea de oscilaie, iar daca SMOD=1, rata este 1/32 din fercvena de oscilaie. In modurile 1 i 3 rata de transfer RT este determinat de Timer 1 ( rata determinata de depasirea de capacitate - "overflow rate" ) si de valoarea bitului SMOD, astfel : RT=2SMOD*T1(overflow rate)/32 In acest caz, Timer 1 poate fi programat ca temporizator n oricare din cele trei moduri de functionare, iar generarea intreruperilor trebuie invalidata. Cel mai frecvent Timer 1 este configurat ca temporizator n mod 2 ( 8 biti cu autoncrcare ). n acest caz ( vezi tabelul 6.1) rata de transfer este : RT=2SMOD*Tosc/(32*12*(256-(TH1)) Tabelul 6.1. Rate de transfer utilizind Timer 1

6.2. Sistemul de intreruperi al microcontrolerului 80C552 6.2.1. Sursele de intreruperi Sistemul de intreruperi al microcontrolerului 80C552 recunoate cereri de intrerupere de la 15 surse distincte, care sunt: a) dou intreruperi externe /INT0 si /INT1.Acestea pot fi recunoscute pe frontul cazator al semnalului sau pe nivel "0" in functie de programarea bitilor IT0 (TCON.0 ) si IT1 (TCON.2 ). pentru intrerupere externa pe front, la detectia acesteia se seteaza fanioanele de intrerupere IE0( TCON.1 ) respectiv IE1 ( TCON.3 ), iar dupa saltul in subrutina de intrerupere acestea sunt automat resetate pentru intrerupere pe nivel, sursa externa trebuie sa mentina cererea activa pina cind intreruperea este generata. De asemenea, cererea trebuie dezactivata inainte de sfirsitul rutinei de tratare a intreruperii, altfel o noua intrerupere va fi generata b) dou intreruperi generate de timerele T0 si T1 prin setarea bitilor TF0 si TF1 din TCON. Acestia sunt resetati automat ( tot prin hard ) dupa saltul in subrutina de tratare a intreruperii. c) o intrerupere generata de interfata seriala RS232 printr-o logica SAU la activarea unuia din fanioanele RI (ntrerupere la receptie) sau TI ( ntrerupere la emisie) din registrul S0CON. Dup saltul in subrutina de tratare a intreruperii, RI sau TI trebuie resetai prin soft. d) opt intreruperi generate de timerul T2: patru intreruperi de capturare, trei intreruperi de comparare i o intrerupere pentru depasirea de capacitate, (pe 8 sau 16 bii): T2 este conectat la 4 registre de comparare CT0,CT1,CT2,CT3. La

receptia semnalelor de intrare CT0I,CT1I,CT2I, registrele de capturare corespunzatoare sunt incarcate cu continutul lui T2 si se genereaza o cerere de intrerupere corespunzatoare prin setarea bitilor CTI0,CTI1,CTI2,CTI3 din registrul TM2IR la coincidenta continutului lui T2 cu cel al registrelor de comparare CM0,CM1,CM2 se genereaza cereri de intrerupere corespunzatoare pe bitii CMI0, CMI1,CMI2 din registrul TM2IR se genereaza o cerere de intrerupere la depasire capacitate registru pe 8 biti ( octetul cel mai puin semnificativ din T2 ) prin bitul T2BO ( TM2CON.4 ) si/sau la depasire capacitate registru pe 16 biti ( T2 ) prin bitul T2OV( TM2IR.7 ) Ambele intreruperi au acelasi vector de adresa

e) o intrerupere generat la sfr itul conversiei analog-numerice prin setarea bitului ADCI ( ADCON.4 ). Fanionul trebuie resetat prin soft dupa ce valoarea convertita a fost citit. f) o intrerupere generata de interfata seriala I C prin bitul SI ( S1CON.3 Fiecare sursa de ntrerupere poate fi validat sau invalidat prin setarea sau resetarea bitului corespunztor din registrele de validare intreruperi IEN0 si IEN1. De asemenea se poate face validarea sau invalidarea globala a surselor de intrerupere prin bitul EA( IEN0.7 ) Cele 15 surse de ntreruperi se pot org aniza pe dou nivele de prioritate ( superior i inferior ) prin intermediul bitilor registrilor pentru stabilirea nivelului de prioritate al intreruperilor IP0 si IP1. Daca exista cereri simultane de pe ambele nivele de prioritate, se trateaza mai nti cererea corespunzatoare nivelului superior de prioritate. Daca exista cereri simultane de pe acelai nivel de prioritate, intreruperile vor fi servite in urmatoarea ordine: X0, S1, ADC, T0, CT0, CM0, X1, CT1, CM1, T1, CT2, CM2, S0, CT3, T2 O subrutina de tratare corespunzatoare nivelului inferior poate fi intrerupta doar de o intrerupere pe nivel superior. O subrutina de tratare corespunzatoare nivelului superior nu poate fi intrerupta. Vectorii de adresa corespunzatori celor 15 surse de intreruperi sunt prezentai in Tabelul 6.2. Coloana cod intrerupere reprezinta codul ( numarul intre 0 si 14 ) pe care programatorul trebuie sa-l precizeze la definirea functiei de intrerupere ( atributul interrupt n ). Tabelul 6.2.
2

IEN0 EA

EAD

ES1

ES0

ET1

EX1

ET0

EX0

EA - setat valideaza generarea de intreruperi, iar resetat invalideaza toate intreruperile EAD - setat valideaza intreruperea de la ADC ES1 - setat valideaza intreruperea de la interfata I C ES0 - setat valideaza intreruperea de la interfata UART ET1 - setat valideaza intreruperea de la Timer T1 EX1 - setat valideaza intreruperea externa 1 ET0 - setat valideaza intreruperea de la Timer 0 EX0 - setat valideaza intreruperea externa 0
2

IEN1 ET2 ECM2 ECM1 ECM0 ECT3 EXT2 ECT1 ECT0 ET2 - valideaza intreruperea data de depasirea capacitatii lui T2 ECM2 - valideaza intreruperea de la comparatorul 2 al T2 ECM1 - valideaza intreruperea de la comparatorul 1 al T2 ECM0 - valideaza intreruperea de la comparatorul 0 al T2 ECT3 - valideaza intreruperea de capturare 3 de la T2 ECT2 - valideaza intreruperea de capturare 2 de la T2 ECT1 - valideaza intreruperea de capturare 1 de la T2 ECT0 - valideaza intreruperea de capturare 0 de la T2 Validarea unei surse de intrerupere presupune setarea bitului corespunzator din unul din registrele IEN0 sau IEN1 precum si setarea bitului EA. Invalidarea unei surse de intrerupere se poate face prin resetarea bitului corespunzator. Invalidarea tuturor intreruperilor se poate face prin resetarea bitului EA. IP0 PAD PS1 PS0 PT1 PX1 PT0 PX0 PAD - stabileste niv. de intrerupere pentru ADC PS1 - stabileste niv. de intrerupere pentru I C PS0 - stabileste niv. de intrerupere pentru UART PT1 - stabileste niv. de intrerupere pentru Timer 1 PX1 - stabileste niv. de intrerup. pentru intreruperea externa 1 PT0 - stabileste niv. de intrerupere pentru Timer 0 PX0 - stabileste niv. de intrerup. pentru intreruperea externa 0 IP1 PT2 PCM2 PCM1 PCM0 PCT3 PCT2 PCT1 PCT0 PT2 - stabileste niv. de intrerupere pentru depasire la T2 PCM2 - stabileste niv. de intrerupere pentru comparatorul 2 al T2 PCM1 - stabileste niv. de intrerupere pentru comparatorul 1 al T2 PCM0 - stabileste niv. de intrerupere pentru comparatorul 0 al T2 PCT3 - stabileste nivelul intrerupererii de capturare 3 al T2 PCT2 - stabileste nivelul intrerupererii de capturare 2 al T2 PCT1 - stabileste nivelul intrerupererii de capturare 1 al T2 PCT0 - stabileste nivelul intrerupererii de capturare 0 alT2 0 = Prioritate mica 1 = Prioritate mare
2

6.2.2. Tratarea unei intreruperi Fanioanele corespunzatoare cererilor de ntrerupere sunt pozitionate n starea S5P2 a fiecrui ciclu masina i sunt testate n ciclu masina urmator. Daca cel puin un fanion este setat i sistemul de ntreruperi este validat se genereaza o instructiune LCALL la subrutina de servire corespunztoare, cu conditia ca aceast proces s nu fie blocat de una din urmatoarele conditii: 1. O ntrerupere de prioritate egala sau mai mare este n curs de executie 2. Ciclul de testare a fanioanelor nu este ciclul final al instructiunii curente 3. Instructiunea care se executa este RETI sau o instructiune de acces la registrele IEN0,IEN1,IP0 sau IP1 O cerere de intrerupere trebuie s ramina activa pina la deservirea ei, deoarece intern nu se realizeaza memorarea acesteia . La aceptarea unei ntreruperi si generarea hard a instructiunii LCALL se salveaza automat n stiva continutul registrului PC (dar nu si PSW) i se ncarca n PC adresa corespunzatoare rutinei de tratare a intreruperii . De asemenea unele fanioane de intrerupere sunt resetate automat ( hard ) iar altele trebuie resetate prin soft. Revenirea din intrerupere se face prin instructiunea RETI, care informeaza procesorul c subrutina de tratare a intreruperii a fost incheiata si reface continutul registrului PC la valoarea de dinaintea acceptari ntreruperii (prin citirea a doi octeti din stiva). 6.2.3. Intreruperi externe Sursele de ntreruperi externe pot fi programate sa fie active pe front sau pe nivel prin setarea sau stergerea bitilor IT1 sau IT0 din registrul TCON. Dac ITx=0 (x=0,1), ntreruperea externa x va genera o cerere de ntrerupere pentru un nivel "0" logic la pinul /INTx. Cererea trebuie mentinuta pina la saltul n subrutina de tratare si dezactivata inainte de revenirea din aceasta. Dac ITx=1 ntreruperea externa x va fi acceptata pe frontul cazator al semnalului de la pinul /INTx. In acest mod daca testarea succesiva a pinului /INTx gaseste, ntr-un ciclu, nivel "1" logic iar in ciclul urmator "0" logic, fanionul IEx din registrul TCON este setat. IEx este resetat automat la saltul n subrutina de tratare a intreruperii.

6.3. Generatorul de semnale PWM Microcontrolerul 80C552 contine doua canale ( iesiri ) pe care se pot genera impulsuri cu frecventa si factor de umplere programat ( pulse width modulation ). Schema bloc este prezentata in figura 6.1.

Fig.6.1. Schema bloc a generatorului de semnale PWM Frecvena de repetiie este definit de un divizor pe 8 biti - registrul PWMP din spatiul SFR, care genereaza impulsuri pentru un numarator pe 8 biti, comun pentru ambele canale. Numratorul numr modulo 255 ( deci intre 0 si 254 inclusiv ). Valoarea acestuia este comparata permanent cu continutul a doua registre PWM0 si PWM1; daca continutul oricaruia dintre aceste registre este mai mare decit continutul numaratorului iesirea corespunzatoare este pusa pe zero, iar daca este mai mic sau egal, iesirea corespunzatoare este pusa pe unu. Astfel registrele PWMi determina factorul de umplere al semnalelor generate in domeniul 0 - 255/255 programabil n incremeni de 1/255. Frecventa semnalelor obtinute la cele doua iesiri este data de relatia:

FPWM = Fosc/ (2(1+PWMP)*255) iar valoarea PWMP pentru o frecventa dorita FPWM este:

PWMP=(Fosc /(2*255* FPWM))-1


De exemplu pentru frecvena de oscilaie de 12MHz rezult FPWM intre 92 Hz si 23,5 KHz. Daca registrele PWMi se incarca cu 00H sau FFH iesirile PWMi pot fi mentinute la un nivel constant de 1 respectiv 0.

Cap.7 Porturile paralele de intrare-ieire microprocesor (Porturile de intrri-ieiri numerice)

ale

sistemelor

cu

7.1 Consideraii generale Porturile paralele sunt circuite ce permit comunicaia bidirecional (att de citire a datelor, ct i de scriere), sau unidirecional (doar de citire sau doar de scriere), ntre un sistem cu microprocesor i mediul exterior. Semnalele ce se transfer prin aceste porturi sunt semnale TTL (semnale logice sau binare ce pot avea doar nivelul 0V- 0 logic, sau 5V 1 logic). Portul paralel poate fi un circuit extern unitatii de prelucrare ( ca in cazul sistemelor cu microprocesor), sau intern- in acelasi circuit cu unitatea de prelucrare (ca in cazul microcontroelrului). Odata selectat, portul de ieire face ca informaia nscris n el s fie disponibil la ieire atta timp ct nu apare o nou selecie. Rezult deci c, din punct de vedere structural, un port de ieiri numerice are la baz un element de nmagazinare a informaiei, de memorare a ei, adic un circuit de tip bistabil sau latch. Acesta, n absena comenzii de ncrcare, ii menine neschimbat starea ieirilor, indiferent de variaia mrimilor de la intrare. Portul de intrare permite unitii centrale de prelucrare s primeasc informaii despre starea unor mrimi logice externe. Selecia unui port de intrri numerice se face, ca i n cazul portului de ieiri, pe baza adresei portului i a activrii unor semnale de control (n acest caz, semnificnd operaie de citire de la port). Odat selectat, portul de intrare realizeaz transferul informaiei dinspre exterior nspre magistrala de date a sistemului cu microprocesor. Deoarece ieirile portului paralel sunt cuplate la magistrala de date (atat in cazul celor externe cat si interne), fiecare ieire are la baz un circuit tri-state (buffer). Acesta, atunci cnd nu este activat (deci portul nu este selectat), prezint o stare de inalt impedan, echivalent funcional cu decuplarea fizic de la liniile magistralei de date. Fig.7.1. prezint structura de principiu a unei linii de port paralel bidirecional. La conectarea unui port paralel ca intrare, cu elemente de circuit externe, trebuie avut n vedere c pentru o funcionare corect, curentul minim ce trebuie furnizat este 70A. La un curent mai mic, bufferul de intrare poate s nu comute i data poate fi eronat. Valorile tipice pentru tensiuni si curenti la portile TTL sunt prezentate in tabel.

Intrare Iesire Tensiune HIGH 2.7 V 5 V Curent HIGH -0.4 mA* Tensiune LOW 0 V 0.5 V Curent LOW 8 mA Tensiune HIGH Curent HIGH Tensiune LOW Curent LOW 2V5V 0.02 mA 0 V 0.8 V -0.4 mA*

* semnul (-) minus pentru curent indica sensul dinspre circuit spre exterior

Fig.7.1. Structura hardware a unei linii (bit) de port paralel bidirectional 7.2 Porturile paralele de intrare- ieire ale microcontrolerului 80C552 Microcontrolerul 80C552 are 6 porturi paralele pe 8 bit. Fiecare port este format dintr-un latch (SFR de la P0 la P5), un buffer de intrare si un driver de iesire. Porturile P0 la P4 sunt porturi bidirectionale, pe cand P5 este doar port de intrare. Fiecare port are, pe langa functia de dispozitiv de intrare-iesire numeric si functii alternative conform tabelului din fig.7.2. Porturile P0 si P2 contin si magistralele de date si adrese pentru conectarea memoriei si/sau a circuitelor externe. In fig. 7.2, 7.3, 7.4 si 7.5 sunt prezentate schemele porturilor respectiv P1, P3, P4 si P5.

Fig.7.2. Functiile alternative ale porturilor paralele ale microcontrolerului 80C552

Fig.7.3. Portul paralel P1

Fig.7.4. Portul paralel P3

Fig.7.5. Portul paralel P4

Fig.7.6. Portul paralel de intrare P5 7.3 Porturile paralele de intrare- ieire ale placilor cu microprocesor 7.3.1. Realizate cu circuite BUFFER i LATCH Pentru sistemele cu microprocesor (chiar si pentru cele cu microcontroler), portul paralel poate fi realizat cu circuite externe. Cele mai simple scheme sunt cele in care porturile sunt unidirectionale, construite cu latch-uri (bistabile D, de exemplu 74374) pentru iesire, si

cu circuite Buffer (circuite tristate, de ex.74244) pentru intrare. In fig.7..7 este prezentata o realizare de pe placa cu microcontroler. Pentru portul de iesire, fig.7.7.a) intrarea circuitului latch este conectata la magistrala de date externa a microcontrolerului, scrierea valorii se realizeaza cu un semnal Y3 format din decodificarea adreselor A0, A1 si A2, validat cu A14 pe 1 la aparitia semnalului /CE (Chip enable) pentru EEPROM si a semnalului de scriere /WR. Datele se inscriu in latch si raman disponibile la iesire pana in momentul in care se inscrie un nou cuvant in latch.

Fig. 7.7 Porturi paralele de intrare si iesire realizate cu latch-uri, buffere si tranzistoare

Pentru portul de intrare, fig.7.7.b) semnalele de intrare sunt aduse la intrarea bufferului tristate 74244 si sunt citite pe magistrala de date la activarea semnalului X1, format din decodificarea adreselor A0, A1 si A2 validate de A14 pe 1, /CE pentru EEPROM si /RD pe 0 (active). 7.3.2. Realizate cu circuite programabile (8255) 7.4 Aplicaii cu porturile parale de intrare-ieire Printre aplicaiile cele mai uzuale ale porturilor paralel se numara generarea unui octet de date si citirea unui octet de date, serializarea si deserializarea unui semnal logic, generarea de semnale PWM. Pentru serializare si generarea de semnale PWM, se utilizeaza si circuitul timer, pentru realizarea timingului(temporizarii) necesar. 7.4.1. Citirea-scrierea unui octet

7.4.2. Serializarea-deserializarea datelor Serializarea unei date inseamna generarea secventiala a bitilor unui cuvant pe o linie a portului paralel de iesire. Un semnal serial are unele caracteristici care ii permit sa fie receptionat si interpretat corect. 1. Formatul: - i. Numarul de biti ii. Bit de start iii. Bit de paritate 2. Frecventa 3. Este insotit sau nu de un semnal de ceas (clock) Pentru realizarea frecventei, este necesara temporizarea cu un timer care genereaza intrerupere la momente de timp echidistante si egale cu jumatatea perioadei unui bit. Daca semnalul de date este insotit de un semnal de ceas (clock), el va arata ca in fig.7.8. Presupunem ca frontul coborator al ceasului este cel ce valideaza data, aceasta inseamna ca data trebuie sa fie stabila in momentul frontului coborator al ceasului. Intreruperile de la timer sosesc la momentele t1, t2, ... t16 pentru un cuvant de 8 biti. La portul paralel, pe bitii 0 (ceas) si 1 (data) se vor scrie la intrerupere, succesiv, cuvintele t1 xxxx xx11 incarca data 1, armeaza ceas t2 xxxx xx10 genereaza front coborator la ceas cu data pe 1 t3 xxxx xx01 incarca data 0, armeaza ceas t4 xxxx xx00 genereaza front coborator la ceas cu data pe 0 t5 xxxx xx11 incarca data 1, armeaza ceas t6 xxxx xx10 genereaza front coborator la ceas cu data pe 1 t7 xxxx xx11 incarca data 1, armeaza ceas t8 xxxx xx10 genereaza front coborator la ceas cu data pe 1

t9 t10 t11 t12 t13 t14 t15 t16

xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx

xx01 xx00 xx01 xx00 xx11 xx10 xx01 xx00

incarca data 0, armeaza ceas genereaza front coborator la ceas incarca data 0, armeaza ceas genereaza front coborator la ceas incarca data 1, armeaza ceas genereaza front coborator la ceas incarca data 0, armeaza ceas genereaza front coborator la ceas

cu data pe 0 cu data pe 0 cu data pe 1 cu data pe 0

Fig.7.8. Serializarea datelor pe portul paralel Dac este necesar se adauga un bit de paritate, start sau stop. Pentru deserializare se procedeaza in modul urmator: a) daca semnalul de date nu este insotit de semnal de ceas este necesara cunoasterea frecventei (perioadei) cu care s-au generat bitii de date seriale si neaparat este necesar un front initial (bit de start) pentru a anunta un sir de date. Receptorul programeaza timer-ul la perioada de transmisie, frontul initial armeaza timerul, iar la prima intrerupere va citi primul bit de date, si succesiv se vor citi toti bitii de date. b) daca semnalul de date este insotit de un semnal de ceas, frontul coborator al ceasului indica valoarea datei. Semnalul de ceas este legat la pinul de intreruperi externe, active pe front coborator, iar in rutina de tratare a intreruperii se citeste bitul 1 care reprezinta bitul de date.

7.4.3. Generarea de semnale PWM

Cap.8. Interfee programabile


8.1. Introducere Dup cum a fost precizat n capitolele anterioare, unitatea central de procesare ntr-un sistem cu microprocesor, comunic cu mediul exterior prin aa numitele porturi sau interfee, ce permit conversia sau adaptarea semnalelor externe la numere pe magistrala de date, numere ce pot fi prelucrate intern. Exist - interfee pentru semnale logice (numerice), aa numitele porturi paralele sau numerice, - interfee pentru semnale analogice (continue)- convertoare analognumerice i numeric-analogice, - interfee de numrare i temporizare (timere), - interfee de comunicare serial cu alte echipamente numerice. n acest capitol vor fi prezentate cteva circuite specializate, programabile, care ndeplinesc aceste funcii, de interfa are a sistemului cu microprocesor cu mediul exterior. Ele au fost realizate n anii 80de firma Intel, i au fost destinate echiprii sistemelor cu microprocesoare de prim genera ie (I8080), ns, datorit performanelor lor remarcabile, echipeaz i ast zi, cu mici modificri, plcile cu microprocesor. 8.2. Interfaa seriala programabil 8251 Interfaa serial programabil (USART- Universal SynchronousAsynchronous Receiver Transmitter) este un circuit (vezi fig.8.1.)ce accept date sub form de caractere , transmise n paralel de ctre unitatea central, le convertete ntr-un format serial i le transmite ctre un destinatar. Totodat, poate recpiona date sub form serial de la un emitor, le convertete n caractere i le transfer paralel ctre unitatea central. Pentru a realiza acestea, 8251 are n structura sa blocurile prezentate n fig.8.1 . Frecvena comunicaiei (de bit) este generat ctre 8251 de la un timer. Frecvena de bit a emitorului trebuie s fie identic cu frecvena de bit a receptorului. Totui este necesar o sincronizare pentru a alinia fazele. Sincronizrile se fac diferit n funcie de modurile de lucru. Are dou de lucru de baz sincron i asincron. n modul sincron datele sunt transmise sau recep ionate n blocuri, sincronizarea fcndu-se prin caractere speciale de sincronizare SYN transmise dup un numr

oarecare de bi i. n modul asincron, este transmis sau recep ionat un singur caracter de 5,6,7 sau 8 bit, ncadrat la nceput de un bit de START, cu rol de sincronizare, i la sfr it de un bit de paritate (dac e cazul) i de 1 sau 2 bit de STOP.

Fig.8.1. Structura interna a circuitului 8251 Circuitul 8251 conine un registru de comand (care se nscrie), un registru de stare (care se citete) i un registru de date (fizic sunt dou loca ii dar cu aceeai adres, una pentru transmisie i una pentru recepie). El este programat prin 2 cuvinte de comand succesive, primul cuvnt de comand este primul transmis ctre circuit dup RESET, i are func ia de selectare a modului de lucru. Dup acesta, toate cuvintele de comand au rolul de tratare a comunicaiei. Starea comunica iei este citit din registrul de stare. Datele sunt trimise ctre 8251 (pentru transmisie) sau citite (de la recepie) din registrul de date. Adresarea se face conform tabelului. -CS 0 0 C/-D 0 1 -RD 0 0 -WR 1 1 Funcia Citire data de unitatea central Citire stare

0 0 1

0 1 x

1 1 x

0 0 x

Scriere data Scriere comand Circuit neselectat

Terminal D0-D7 RESET CLK C/-D -RD -WR -CS -DSR -DTR -CTS -RTS TxD TxRDY TxE -TxC RxD RxRDY -RxC SYNDET

Descriere
Conexiuni la magistrala de date a microsostemului Aducere n condiii iniiale Ceasul dispozitivului Selecie comand-dat Citete data sau starea Scrie comand sau dat Selecie circuit Modem preg tit Interfa preg tit pentru comunicaie cu modem Acceptare transmisie de la modem Cerere de transmisie ctre modem Ieire serial de date Circuit preg tit de a primi date pe magistral pt Tr Circuit gol (nu mai are date de transnmis) Clock pentru transmisia serial Intrarea serial Caracter preg tit pentru a fi transmis pe mag. date Clock pentru recepia serial Detecie sau forare caracter sincronizare

Tip In-Out In In In In In In In Out In Out Out Out Out Out In Out In In-Out

8.3. Interfaa paralel programabil 8255 Circuitul 8255 reprezint o interfa paralel (numeric) pentru citirea/scrierea semnalelor logice la/de la mediul exterior. El conine 24 terminale ce pot fi configurate ca 3 porturi de 8 bit bidirec ionale. Configuraia pinilor este prezentat n fig. 8.3 cu descrierea pinilor n tabel, iar n fig.8.4

Fig.8.3. Configuraia pinilor la circuitul 8255

Fig.8.4. Structura intern a circuitului 8255

Terminal D0-D7 PA0-PA7 PB0-PB7 PC0-PC7 -RD -WR RESET -CS A0, A1

Descriere
Magistrala de date bidirecional Port A Port B Port C Comand citire Comand scriere RESET, aducere regitri la starea iniial Selecie circuit Intrri selecie porturi

Tip In-Out In-Out In-Out In-Out In In In In In

Circuitul 8255 poate lucra n 3 moduri. Modul 0 este modul de intrare ie ire n care se scrie o dat n registrul de dat corespunz tor portului, iar aceasta este plasata pe liniile portului de ieire. La citire, data primita pe liniile portului de intrare este citit de la registrul de date cu o instruc iune de citire. Modul 1 (asemntor cu modul 2) permite o conversaie cu un dispozitiv corespondent. Astfel, la citire (intrare), dispozitivul extern plaseaza un cuvant pe liniile portului A si activeaza semnalul STBA. Circuitul 8255 preia continutul liniilor si le depune intr-un registru de date, activand semnalul IBFA care indica faptul ca datele sunt in registru. Totodata genereaza si o intrerupere catre unitatea centrala pe linia -INTRA. Microprocesorul citeste continutul registrului de date inactivand linia IBFA si permitand inceperea unui nou ciclu. La scriere in exterior (iesire), circuitul 8255 plaseaza un caracter pe liniile portului A, generand semnalul OBFA. Circuitul destinatar este semnalizat de semnalul OBFA, preia datele si raspunde cu semnalul ACK. Acesta inactiveaza OBFA si genereaza intrerupere catre microprocesor pentru a transmite un nou caracter. Semnalele sunt prezentate in fig. 8.5.

Fig.8.5. Semnalele la circuitul 8255 in modul de lucru 1

Pentru programarea si transferul datelor de la si catre circuitul 8255, acesta contine 3 registri de date, cate unul pentru fiecare port, care pot fi cititi si scrisi, si un cuvant de comanda ce poate fi scris. Selectia acestora se face cu bitii A0 si A1 conform tabelului urmator. -CS 0 0 0 0 0 0 0 1 A1 0 0 1 1 0 0 1 x A0 0 1 0 1 0 1 0 x -RD 1 1 1 1 0 0 0 -WR 0 0 0 0 1 1 1 x Funcia Scriere data de unitatea central la portul A Scriere data de unitatea central la portul B Scriere data de unitatea central la portul C Scriere data de unitatea central n registrul de comand Citire data de unitatea central de la portul A Citire data de unitatea central de la portul B Citire data de unitatea central de la portul C Circuit neselectat

8.5. Arbitrul de ntreruperi programabil 8259 Arbitrul de intreruperi este un circuit ce poate manipula pana la 8 cereri de intrerupere externa asigurand o varietate de modalitati programabile pentru arbitrarea prioritatilor acestora. Pentru a creste numarul de intreruperi gestionate la 64, 8 circuite 8259 pe post de slave pot fi conectate la un circuit 8259 master. Configuratia pinilor este prezentata in fig.8.6, iar structura interna este prezentata in fig.8.7.

Fig.8.6. Configuratia pinilor la circuitul 8259

Fig.8.7. Structura interna a circuitului 8259 O cerere de intrerupere de la o sursa externa pozitioneaza pe 1 un bistabil din Registrul Cererilor de intrerupere (RCI). Pozitionarea pe 1 a unuia sau mai multor bistabili din RCI duce la generarea unui semnal de intrerupere INT catre microprocesor. Raspunsul INTA pune pe 0 bistabilul cererii care uremeaza sa fie tratata si pozitioneaza pe 1 un bistabil in Registrul Cererilor de intrerupere tratate (RCIT). Acest bit va fi adus la 0 dupa ce se incheie rutina de tratare a intreruperii. Circuitul pentru rezolvarea prioritatilor stabileste care este intreruperea ce va fi tratata in functie de prioritatile prestabilite. Semnalul de recunoastere a intreruperii INTA face ca 8259 sa forteze pe liniile de date codul instructiei CALL, circuitul specializat 8228 va genera inca 2 semnale INTA iar 8259 fa forta pe liniile de date adresa rutinei de intrerupere.

Registrul de mascare a intreruperilor va masca intreruperile ce trebuie invalidate accesand bitii din RCI si RCIT. Terminal D0-D7 A0 -IOR -IOW Descriere
Magistrala de date bidirecional Identifica unitatea ca port de I/O sau celula de memorie Semnal de citire Semnal de scriere Semnal de intrerupere trimis de 8259

Tip In-Out In In In Out In Out catre master In

INT Recunoastere intrerupere -INTA C0, C1, Linii de selctie a 8259 slave C2 SP

Identifica 8259 ca master sau slave

Cap.9. Placi pentru achizitia de date


9.1. Sistem de achizitii de date (Data Acquisition System)- SAD DAS are rolul de a captura datele de la un sistem fizic (proces) , si de a le inregistra intr-un format potrivit, pentru o utilizare ulterioara (procesare, monitorizare, control, etc). Capturarea se face in general in mod automat, fara interventia unui operator uman. Dac sistemul are i rol de a trimite comenzi ctre lumea real, el poart numele de Sistem de Achiziii de date i Control - SADC In general un SAD are 7 functii. 1. Colectarea datelor 2. Masurare 3. Temporizare si sincronizare (triggerare) 4. Ceas de timp real 5. Comunicatii de date 6. Conducere de proces 7. Arhivare de date Structura unui SADC este prezentata in fig.9.1.

Fig.9.1. Structura unui SADC Se remarc 3 componente - Senzori si elemente de executie cu rol de culegere de date si actiune in lumea reala (proces) - Calculatorul cu rol de arhivare, procesare a informatiilor de la

proces si generare a comenzilor catre proces Placa de achizitii de date i control cu rol de interfa ntre proces i calculator. Placa de achiziie face posibil transferul informaiei dinspre proces ctre calculator i invers, prin modificarea purttorului de informatie semnalul1.

9.2. Placa de achizitii de date (Data Acquisition Board) 9.2.1. Rolul si componena plcii de achizi ii de date Rolul plcii (vezi fig.9.1.) este de a: - permite preluarea cu acuratee, de ctre calculator a informa iei prelevate din proces, informa ie existent sub forma de semnal electric (tensiune), prin transformarea ntr-un semnal numeric, - permite transferul comenzilor trimise ctre proces, prin transformarea unui semnal numeric ntr-un semnal electric sau neelectric, - realizeaz comunicaia cu un eventual echipament de calcul, - realizeaza temporiz ri i sincronizri, - memoreaz date n vedearea transmiterii ctre un calculator Pentru a ndeplini aceste func ii, placa de achizitie con ine urmtoarele blocuri (vezi fig.9.1.): - Convertoare A/N si N/A pentru conversia semnalelor din analogic n numeric i invers. Se realizeaz n general cu circuite specializate - Multiplexoare pentru conectarea mai multor semnale la un convertor. Se realizeaz cu circuite multiplexoare analogice. - Bloc de temporizari si sincroniz ri. Se realizeaz cu circuite temporizatoare programabile (ex. I8253), - Bloc de comunica ii. Se realizeaz cu circuite specializate pentru fiecare tip de comunicaie. - Bloc de memorie. n general datele nu sunt pstrate pe placa de achizi ie, memoria avnd doar un rol de tampon pn la transmiterea lor ctre calculator. - Porturi paralele. Au rolul de a gestiona semnalele logice, provenite de la contacte, etc., i de a genera semnale logice, ctre elemente cu dou stri (pornit-oprit). Se realizeaz cu circuite latch, buffer
1

O definitie a semnalului este Purtator de informatie . Ex. Informatia despre temperatura unui obiect este transformata intr-un semnal electric (tensiune) de catre un senzor. Pentru a fi transmisa la distanta, tensiunea este transformata in alt semnal electric (curent), care apoi este retransformat in tensiune, ca la sfarsit sa fie convertita de catre un convertor analog-numeric intr-un numar pentru a fi utilizata intr-un echipament de calcul (calculator). Prin urmare, informatia despre temperatura a fost putata de 4 semnale (tensiune, curent, tensiune, numar) fara a fi modificata (sau cu modificari minime datorate perturbatiilor, neliniaritatii).

sau programabile (ex. I8255). Circuite de condiionare de semnal. Aceste circuite au rolul de a forma semnalele pentru a putea fi preluate de convertoare sau porturi paralele care lucreaz cu tensiuni ntr-o anumita gam2. De asemenea au rolul de filtrare a zgomotelor, de izolare electric dac este cazul, de transformare curent-tensiune sau tensiunecurent.

9.2.2. Clasificarea plcilor de achiziii de date. Plcile de achiziii de date sunt clasificate dupa modul de transfer al datelor catre computer, astfel : i. conectate permanent la calculator (plug-in) Placile de tip plug-in pot fi conectate pe magistrala PCI sau PCMCIA. Ele sunt controlate integral de procesorul calculatorului, nu au memorie proprie (sau o memorie de dimensiune mic pe rol de circuit tampon). ii. cu func ionare independent (standalone) Plcile de tip standalone con in, pe lnga blocurile unei plci de achizi ie, si microprocesor, memorie, sursa de tensiune. Ele comunic cu calculatorul pe linii de comunicatie de tipul: a. RS232, RS422, RS485 b. USB c. GPIB3 d. Ethernet e. Radio sau infrarosu (wireless) Un exemplu de plac de acest tip este i sistemul cu microcontroler. Exist i plci de tip plug-in care comunic cu unitatea central pe magistrala PCI dar care au structura unei placi standalone.(de ex. placa dSPACE). Ea contine procesor si memorie, execut aplicaia
2

Porturile paralele lucreaza cu semnale de nivel TTL (0V 5V, sau 0V 3.3V) Un circuit logic extern poate lucra cu semnale 0V-24V. In acest caz conditionatorul de semnal trebuie sa adapteze nivelul 0V-24V la nivelul 0V-5V. Convertoarele A/N lucreaza cu semnale analogice la intrare in gama, de ex. [0 -5]V. Daca semnalul provenit de la un traductor este in gama, de ex. [-3-7]V, conditionatorul de semnal trebuie sa faca transformarea de domeniu oentru ca tot intervalul semnalului de iesire de la traductor sa poata fi citita de convertorul A/N. 3 GPIB (General Purpose Inteface Bus) este un standard de comunicatie pentru aplicatii de laborator sau industriale, in general pentru conectarea unui calculator cu pana la 15 instrumente programabile, elaborat de Hewlett Packard in 1965. Initial a purtat numele HPIB, dar dupa o raspandire foarte larga datorita performantelor sale a preluat actualul nume. Este o magistrala paralela, cu un cablu ce contine 24 de linii (8 semnal cu 8 masa- pentru protectie la perturbatii si 8 linii de conada si control a comunicatiei). Viteza de transfer este de 1Mbyte/sec, Numarul maxim de dispozitive 15, distanta maxima intre doua dispozitive 4 metri, distanta medie 2m, lungimea totala a cablului 15m. Conectarea se poate face in linie sau stea.

independent de microprocesorul PC-ului, folosind de la acesta, dupa incarcarea programului doar sursa de tensiune. Poate exista comunicare intre plac i PC dar doar pentru transfer de informa ii, nu pentru rularea efectiva a aplicaiei. 9.2.3. Alegerea plcii de achizi ie de date Pentru a construi o aplica ie de monitorizare, achizi ie sau conducere de proces, trebuie luate in considerare urmatoarele cerine: 1. Alegerea tipului de plac, standalone sau plug-in se face dependent de tipul aplica iei, dac este de laborator sau de mediu industrial, (dac poate sta lnga un PC, dac este n micare, dac mediul este ostil unui echipament umiditate, temperatur , praf, vibraii) 2. Alegerea tipului de comunicatie pentru placi standalone dependent de tipul calculatorului care va prelua datele. 3. Alegerea conditionarii de semnale 4. Alegerea numarului de canale de I/E pentru portul paralel 5. Alegerea tipului de convertor (nr. de canale, multiplexarea, nr de biti (8, 10, 12, 24), domeniul de tensiune([-10,10]V, [-5,5]V, [0,5]V, [0,10]V), viteza de conversie (sampling rate 30 000 la 250 000 esantioane/sec. sau 330 000 la 20 mil. esantioane/sec.).

Capitolul 9 Arhitectura microcontrolerului I 80552 9.1. Structura I80552 n fig.9.1 este prezentat schema bloc a microcontrolerului I80552

Fig.9.1. Schema bloc a microcontrolerului I80552 9.2. Organizarea memoriei Spaiul de adresare a memoriei microcontrolerului este organizat n trei zone (v. fig.9.2): - 64 Koctei memorie program - 64 Koctei memorie date extern - 384 octei (256 + 128) memorie intern 9.2.1. Memoria program este accesat prin registrul dublu Program Counter (PC de 16 bit). Pentr u versiunea I83552, exist memorie program intern de 8Koctet, selecia fcndu-se cu pinul EA pe nivel "1". 9.2.2. Memoria de date extern este accesat la execuia unei intrucii de mutare MOVX.

Fig.9.2. Organizarea memoriei

Fig.9.3. Organizarea memoriei interne

9.2.3. Memoria de date intern este structurat conform fig.9.3. Ea conine 384 octei dispui astfel: - 256 octei memorie date - 128 octei pentru SFR Cei 256 octei sunt la rndul lor mprii n : - 4 seturi (banks) de cte 8 regitri R0-R7 (adresa 0 la 31) adresabil prin registru - 16 octei (adresa 32 la 47) adresabili direct - 80 octei (adresa 48 la 128) adresabili direct sau indirect - 128 octei (adresa 128 la 255) adresabili indirect Regitri SFR (adresa 128 la 255) sunt suprapui peste ultimii 128 octei, i sunt adresabili direct. Selecia se face intern prin adresare. Lista SFR (56 buc.) este prezentat n fig.9.4., iar adresele sunt prezentate n fig.9.5. Dac se acceseaz o locaie dintre cele 128 n care nu exist SFR, coninutul va fi indecis.

Fig.9.4. Lista SFR

Fig.9.5. Adresele SFR 9.3. Modurile de adresare a operanzilor Fiecare instrucie n cod main1 a microcontrolerului este format din Codul operaiei Operand Instrucia poate avea 0, 1, 2, 3 sau 4 operanzi. Operanzii pot fi - surs (de unde se citete, data de intrare) - destinaie (unde se scrie rezultatul, data de ieire)

Nivelele limbajelor de programare sunt: cod main (ir de 0 i 1) neles de microprocesor, limbaj de asamblare, limbaj de nivel nalt (C, C++, Java, etc). Trecerea de la un nivel superior la unul inferior se face cu compilator, respectiv asamblor

Pentru adresarea operanzilor surs exist 5 moduri: - Registru - Direct - Indirect prin registru - Imediat - Indirect prin registru baz plus registru index Pentru adresarea operanzilor destinaie exist 3 moduri: - Prin registru - Direct - Registru indirect

9.4. Regitri cu funcii speciale (SFR) adresabili direct, constituie toi regitri microcontrolerului, cu excepia PC (Program Counter- contorul de program) i cele 4 seturi (Bank) de regitri R0- R7. Pe langa regitri care controleaz interfeele din microcontroler, SFR include ACC, B, SP, PSW i DPH, DPL (Data Pointer). Registrul ACC- (Acumulator) este adresabil be bit i conine n general rezultatul operaiilor aritmetice i logice. Registru B accesabil pe bit, este utilizat la operaiile de nmulire i mprire.

Fig.9.6. Registrul PSW al microcontrolerului Registrul SP (Stack Pointer Pointer de stiv) conine adresa celei mai recente locaii ocupate din stiv. Stiva poate fi plasat oriunde n zona memoriei RAM interne de 256 octei. Se iniializeaz la valoarea 07. La o instrucie de tip PUSH sau CALL, SP este incrementat nainte de transfer in stiv, iar la recuperare din stiv, SP este decrementat dup execuia instruciilor de tip POP, RET sau RETI. Registrul PSW (Program Status Word registru de stare a microcontrolerului) are urmtoarea componen, prezentat n fig.9.6. Registrul DPTR (Data Pointer) format din doi octei DPH i DPL. Este utilizat n adresarea indirect prin registru. Este singurul registru care poate fi adresat pe 16 bit.

9.5. Timing-ul Unitaii Centrale de Procesare (CPU) Un ciclu main const din 12 perioade ale oscilatorului (clock). Un ciclu este divizat n 6 stri. Fiecare stare este format din 2 faze (clock). Se observ n fig.9.7. c fiecare stare (S1, S2,...S6) dureaz 2 cicli (faze P1, P2) ai oscilatorului. Cele 12 perioade de ceas ale unui ciclu main sunt numerotate de la S1P1 (Stare 1, Faza 1) la S6P2 (Stare 6, Faza 2). Semnalul ALE este generat de dou ori ntr- un ciclu main. O excepie exist atunci cnd se acceseaz memoria extern i semnalul ALE este eliminat. (fig.9.7.d.). n fig.9.7.a. i 9.7.b. se prezint timing-ul pentr u instrucii de un octet i 2 octei pe un singur ciclu main. Fig.9.7.c. prezint timing-ul pentru instrucii de 1 octet i doi cicli, iar n fig.9.7.d. se prezint situaia pentru o instrucie MOVX, care asigur transferul datelor n/din memoria extern. Pentru microprocesorul I80552, exist un set de 111 instrucii, dintre care 64 se execut ntr-un ciclu main (1 sec), 45 de instrucii se execut n 2 cicli main (2 sec), iar dou instrucii (nmulire i mprire) n 4 cicli (4 sec). 9.6. Accesarea memoriei externe Accesarea memoriei externe este de dou tipuri: - Accesarea memoriei de program - Accesarea memoriei de date externe Semnalele utilizate pentru accesarea memoriei sunt: - PSEN (Program Storage Enable), pentru strobarea citirii din memoria de program (memoria de program nu poate fi scris), - -RD, respectiv WR. semnalele de citire i scriere pentru memoria de date extern Partea mai puin semnificativ a adresei este furnizat de Port 0 pe durata generrii semnalului ALE iar partea mai semnificativ , de portul P2. Adresarea memoriei de program se face pe 16 bii, iar a celei de date pe 16 bit dac se folosete registrul DPTR sau pe 8 bit dac se folosete registrul Ri. Ciclul de citire a instruciei din memoria program poart numele de ciclu de aducere (fetch).

Fig.9.7. Timing- ul Unitii Centrale de Procesare (CPU)

n fig. 9.8 este prezentat succesiunea de secvene pentru ciclurile de citire din memoria de program (fig.9.8.a.) utiliznd doar PSEN, i din memoria de date extern, utiliznd semnalul RD i instrucia MOVX fig.9.8.b.).

Fig.9.8. Secvena de semnale n cicluri de citire din memoria program (A) i date (B) 9.7. Exemplu de funcie Funcii referitoare la portul paralel / Include #include <reg552.h> #include "ap_lib.h" // .................................... // Adresele de memorie pentru porturile de intrare/iesire #define INP_PORT 0xC001 // Port de intrare #define OUT_PORT 0xC003 // Port de iesire #define OUT_PORT_1 0xC002 // Port de iesire de putere

// .................................... unsigned char inp_ReadPort(void) { unsigned char xdata * p = (unsigned char xdata *)( INP_PORT ); return ( * p ); } void outp_WritePort(unsigned char Value) { unsigned char xdata * p = (unsigned char xdata *)( OUT_PORT ); ( * p ) = Value; } void outp_WritePort_1(unsigned char Value) { unsigned char xdata * p = (unsigned char xdata *)( OUT_PORT_1 ); ( * p ) = Value; }

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