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, acionarea 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 operaii 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 secvenial 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 perfecionat corespunztor, din punct de vedere a vitezei de
lucru, a capacitii 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, coninutul se pierde i nu mai poate fi
recuperat,
- accesul la informaie este posibil direct la fiecare locaie (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 locaie, i aceasta nu
depinde de poziia locaiei n memorie.
Din acest motiv, memoria RAM este folosit ca memorie principal, ca zon de
manipulare a aplicaiilor 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 informaia 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 informaie este posibil direct la fiecare locaie


- 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 informaia 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 construcia memoriei, se disting
- memorii RAM statice (SRAM)
- memorii RAM dinamice (DRAM, SDRAM, DDR RAM, DDR2 RAM)
Dup funcia 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 informaie 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 iniial 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
informaia, 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 intersecia unui rnd cu o
coloan.
Circuitele moderne conin amplificatoare pentru amplificarea semnalelor i
detectarea ncrcrii fiecrei celule, logica de adrese pentru selectarea rndului
i coloanei, regitri interni care gestioneaz operaia de refresh.

Operaia 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 , selecia 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 operaie 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 secvenial, 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 creterii 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 conine 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 coninute n capsule
DIP. Cu ele se formeaz module de memorie pe o plac, cu un conector n linie.
Un astfel de modul se numete SIMM (SIngle In line Memory Module). Deoarece
sunt plasate perpendicular pe placa de baz, ocup puin 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 bii 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 conine 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. Folosete 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 bii (adic 8 octei sau
byte)
2.1.b) Tipuri de memorii ROM
n cadrul evoluiei lor, memoriile de tip ROM au trecut prin cteva faze foarte
importante pentru funcionalitatea lor. Astfel, prima memorie, denumit
ROM (Read Only Memory) are coninutul 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 informaie


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 coninutul
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. Diferena 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 aplicaie, 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
aplicaie, 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 informaiei scrise 10 ani
tensiune de alimentare 5V
tensiune de programare 12V
semntur electronic a productorului i a produsului

Fig.2.5.Schema funcional 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 coninutul EEPROM-ului astfel:
lumina lmpii fluorescente n 3 ani, lumina soarelui ntr-o sptmn. Din
acest motiv se recomand aplicarea unei etichete protectoare pe geamul
circuitului.
Frecvena 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 distana 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 32Koctei. 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, fr 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 octei 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. Sfritul 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
iniializat.

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, sfritul 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 octei.
Operaia de scriere pe pagin este iniiat 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 meninute 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 operaie 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 (operaie 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. Operaia 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 prezentai n fig.2.15

Fig.2.15. Pinii memoriei FLASH


Operaia 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
execuiei. Circuitul , n prim faz scrie toat memoria cu 00h dup care terge
tot coninutul (octeii vor avea valoarea FFh). n ncheiere, este necesar
verificarea corectitudinii datelor. Dac aceasta nu s-a ncheiat corect (exist bii
care nu sunt setai pe 1 logic)se relanseaz operaia de tergere. Se estimeaz
c sunt necesare, n mod normal, 100 de repetri 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 operaiei de tergere

Fig.2.17. Diagrama temporal a operaiei de tergere


Operaia 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 operaiei 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 64Koctei
- memorie de date intern de 256 octei suprapus cu 128 octei de memorie
ce conine Regitri cu Funcii Speciale (SFR)2. n total 384 octei.

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 octei de RAM Data
intern (de la 128 la 255) i zona de 128 octei 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 interacioneze
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 operaii interne, ns este
necesar comunicaia acesteia cu exteriorul, fr de care funcionalitatea
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 comunicaie 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 funcie de compatibilizare, se
numesc module de interfa (sau module de intrare-ieire).
Conven iile utilizate pentru a implementa aceast comunicaie,
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 implementrilor 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
interacioneze cu gama, deasemenea larg i nu neaprat unitar, a
echipamentelor periferice, utiliznd o palet important de semnale,
viteze de lucru si protocoale de comunicaie.
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, comunicaia 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 comunicaia are loc ntre interfa i periferic.
Uzual, primul stadiu se denumeste operatie de intrare-iesire, iar al doilea,
operaie de transmisie a informaiilor.
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
funcie 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 comunicaie serial- bidirecional, permite comunicarea
cu alte sisteme cu microprocesor.
2. Interfaa paralel bidirecional, 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 informaiei coninut n limea impulsurilor, generarea de
impulsuri de lime programabil, numrarea de evenimente.
5. Arbitrul de intreruperi intrare. permite gestionarea cererilor de acces
a interfeelor la microprocesor.
6. Generatorul de semnal PWM ieire, 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 instalaiilor industriale (semnalizri,
traductoare etc.),
respectiv cele de ieire furnizeaz
- informaii 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 pregtete 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 aplicaie va depinde de
-rata de transmitere a datelor,
-intrzierea maxim cu care microprocesorul poate prelua/transmite
datele din momentul disponibilitii echipamentului care le vehiculeaz, posibilitatea executrii, intercalat cu operaiile 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 diferenierea 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
menionate 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 operaiile 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 Operaii 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 selecia
porturilor de I/E ale sistemului, microprocesorul efectueaz operaii de
transfer de date ntre aceste interfete si CPU.

Exista dou tipuri de baz (din punctul de vedere al semnificaiei), 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 operaiilor
portului i ale microprocesorului, i setarea/testarea unor parametri,
operaii necesare n vederea transmiterii cuvintelor de date.
Folosite n operaii 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 semnificaii unice, programarea portului (pentru
porturile care pot fi programate). Astfel se pot iniia unele operaii 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 posibilitile 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, regitri 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
operaia ce se efectueaz, referitor la date sau control. Cele dou
instruciuni 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 operaie 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 selecia
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
posibiliti oferit de instruciunile de tip lucru cu memoria este mult
mai larg. (Din punctul lui de vedere, microprocesorul va efectua operaii
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 citete cuvntul de stare de la port;
(c) se verific biii de stare ce indic posibilitatea transferrii datelor;
(d) se reiau paii b-c, pn ce portul este gata de transfer;
(e) se citete (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 operaii -masurtori, 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 soluionare 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 Operaii 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).
Operaiile DMA se intreptrund cu operaiile 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 efecturii 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 obinut, controlul magistralelor poate fi meninut 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 obin 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

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:

IT0

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

CTN3 - capturare pe frontul negativ (pentru CT3I)

CTN0

CTP0

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

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

CTI0

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 interinfluenrii 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 direct 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 transmii 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 interfaa 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 sfritul conversiei analog-numerice


prin setarea bitului ADCI ( ADCON.4 ). Fanionul trebuie resetat prin
soft dupa ce valoarea convertita a fost citit.
2

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 organiza 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.

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
2

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

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
2

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

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 interfaare 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 generaie (I8080), ns, datorit performanelor lor remarcabile,
echipeaz i astzi, 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 recepionate n blocuri, sincronizarea fcndu-se
prin caractere speciale de sincronizare SYN transmise dup un numr

oarecare de bii. n modul asincron, este transmis sau recepionat un


singur caracter de 5,6,7 sau 8 bit, ncadrat la nceput de un bit de
START, cu rol de sincronizare, i la sfrit 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
locaii 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
funcia de selectare a modului de lucru. Dup acesta, toate cuvintele de
comand au rolul de tratare a comunicaiei.
Starea comunicaiei 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

C/-D

-RD

-WR

Funcia

Citire data de unitatea central

Citire stare

Scriere data

Scriere comand

Circuit neselectat

Terminal

Descriere

D0-D7

Conexiuni la magistrala de date a microsostemului


Aducere n condiii iniiale

Tip
In-Out
In

Ceasul dispozitivului

In

Selecie comand-dat
Citete data sau starea

In
In

Scrie comand sau dat

In

-CS

Selecie circuit

In

-DSR

Modem pregtit

In

-DTR

Interfa pregtit pentru comunicaie cu modem

Out

-CTS

Acceptare transmisie de la modem

In

-RTS

Cerere de transmisie ctre modem

Out

TxD

Ieire serial de date

Out

TxRDY

Circuit pregtit de a primi date pe magistral pt Tr

Out

TxE

Circuit gol (nu mai are date de transnmis)

Out

-TxC

Clock pentru transmisia serial

Out

RxD

Intrarea serial

In

RxRDY

Caracter pregtit pentru a fi transmis pe mag. date

Out

-RxC

Clock pentru recepia serial

In

SYNDET

Detecie sau forare caracter sincronizare

In-Out

RESET
CLK
C/-D
-RD
-WR

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 bidirecionale.
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

Descriere

D0-D7

Magistrala de date bidirecional


Port A

Tip
In-Out
In-Out

Port B

In-Out

Port C
Comand citire

In-Out
In

-WR

Comand scriere

In

RESET

RESET, aducere regitri la starea iniial

In

-CS

Selecie circuit

In

A0, A1

Intrri selecie porturi

In

PA0-PA7
PB0-PB7
PC0-PC7
-RD

Circuitul 8255 poate lucra n 3 moduri.


Modul 0 este modul de intrare ieire n care se scrie o dat n registrul de
dat corespunztor 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 instruciune 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

A1

A0

-RD

-WR

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

Descriere

Tip

D0-D7

Magistrala de date bidirecional


Identifica unitatea ca port de I/O sau celula de
memorie
Semnal de citire

In-Out
In

Semnal de scriere

In
Out

A0
-IOR
-IOW

Semnal de intrerupere trimis de 8259

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

Identifica 8259 ca master sau slave

In

In
Out catre
master
In

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 achiziii de date
Rolul plcii (vezi fig.9.1.) este de a:
- permite preluarea cu acuratee, de ctre calculator a informaiei
prelevate din proces, informaie 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 temporizri i sincronizri,
- memoreaz date n vedearea transmiterii ctre un calculator
Pentru a ndeplini aceste funcii, placa de achizitie conine 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 sincronizri. Se realizeaz cu circuite
temporizatoare programabile (ex. I8253),
- Bloc de comunicaii. Se realizeaz cu circuite specializate pentru
fiecare tip de comunicaie.
- Bloc de memorie. n general datele nu sunt pstrate pe placa de
achiziie, 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 funcionare independent (standalone)
Plcile de tip standalone conin, pe lnga blocurile unei plci de achiziie,
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 informaii, nu pentru
rularea efectiva a aplicaiei.
9.2.3. Alegerea plcii de achiziie de date
Pentru a construi o aplicaie de monitorizare, achiziie sau conducere de
proces, trebuie luate in considerare urmatoarele cerine:
1. Alegerea tipului de plac, standalone sau plug-in se face
dependent de tipul aplicaiei, 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).
Pentru 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 pentru 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