Sunteți pe pagina 1din 199

Curs 1

RIM

Conf.Dr.Ing. S.Paturca
EVALUARE

a) Activităţile evaluate şi ponderea fiecărei activităţi:


• Referate -teme de casa- 20% -individuala
• Tema de casa - raport - 30 % (raport scris 15% - max 4 studenti/echipa,
prezentarea raportului 15%)
• Activitate in timpul laboratorului - 10%
• Test 1 = 20 %
• Test final = 20%

b) Cerinţele minimale pentru promovare:


• efectuarea laboratorului;
• obţinerea a 50 % din punctajul total.

Cadru didactic: Conf. Dr. Ing. Sanda Victorinne Paturca


victorinnes.paturca@upb.ro
victorinne@gmail.com
Robot modern

• Robotul actual modern - sistem complex,


programabil, echipat cu microprocesoare,
senzori, sisteme de acţionare, structuri
mecanice, cu capacitate de acţiune,
decizie, “perceptie”, comunicare.

Conf.Dr.Ing. S.Paturca
Cap. I.1. Roboti medicali -
structuri

Conf.Dr.Ing. S.Paturca
I.1. Structuri de roboţi medicali
• roboţi şi teleroboţi chirurgicali,
• teleroboţi pentru prezenţa virtuală a medicului,
• roboţi medicali utilizati în domeniul stomatologic,
• micro-roboti si nano-roboţi,
• roboţi pentru uz în laborator,
• roboţi pentru servicii logistice şi ajutor în spitale/clinici
• sarcini specifice: supravegherea şi securizarea echipamentelor şi
spaţiilor; ajutor in prepararea alimentelor şi servirea meselor; ajutor
în întreţinerea si curăţenia spaţiilor interioare şi exterioare
spitalelor;
• roboţi de asistenţă, care pot fi clasificaţi în două categorii
roboţi pentru recuperarea pacienţilor şi de asistență socială
• roboţi pentru asistenţa persoanelor cu dizabilitati,
• roboţi personali şi de companie, etc.
Conf.Dr.Ing. S.Paturca
I.1.1 Roboti in chirurgie

Roboti - ajutoare medicale si chirurgicale

Roboţi chirurgicali, telechirurgi şi sisteme integrate chirurgicale - structuri


coordonate de medicul chirurg
- utili pentru intervenţii invazive minimale, precise, fapt ce conduce la
reducerea perioadei de recuperare a pacientilor;
- folosiţi la automatizarea unor sarcini chirurgicale de bază, în vederea
diminuării oboseli medicului curant, ş.a.; Conf.Dr.Ing. S.Paturca
Momente cheie în chirurgia minim invazivă

Conf.Dr.Ing. S.Paturca
Prezent - viitor

Conf.Dr.Ing. S.Paturca
Roboti in chirurgie

Fig. Robot chirurgical DaVinci


Conf.Dr.Ing. S.Paturca
Roboti in chirurgie
Folosirea sistemelor chirurgicale în
scop de simulatoare

Conf.Dr.Ing. S.Paturca
Roboţi pentru laboratoare

Fig. Roboti pentru ajutor în manipularea de instrumente


de laborator - Scrub Nurse “Penelope”

Conf.Dr.Ing. S.Paturca
Roboti asistivi

Roboţii asistivi
- destinaţi personalului de specialitate în perioadele de îngrijire a
bolnavilor (prin degrevare de la activitǎţi repetitive, de rutinǎ, pentru
transport de pacienţi, manipulare de echipamente, s.a);
- utili în ajutorul persoanelor cu handicap în activităţile zilnice (exemplu:
proteze robotice);
Folosirea robotilor duce la suplimentarea personalului de asistenta si poate
contribui la reducerea erorii umane in ingrijirea medicala. Conf.Dr.Ing. S.Paturca
Teleroboti pentru prezenta virtuala a medicului
-Controlati de medic
- mediator intre medic – terapeut - pacient

Teleroboţi
- necesari pentru prezenţa virtuală a
medicului în locaţiile unde acesta nu
poate ajunge, în vederea înlăturării
întâzierilor în aplicarea procedurilor şi
Conf.Dr.Ing. S.Paturca
a tratamentelor medicale.
I.1.3 Roboţi medicali în domeniul stomatologic
Exempul- Robot dentar pentru realizare de fațete dentare,
coroane, punti, s.a.

 Fig. 1 Interfaţa cu medicul stomatolog,

 Fig. 2 Sistemul de frezare

Conf.Dr.Ing. S.Paturca
Roboţi medicali în domeniul stomatologic

Fig. Robot Showa Hanako 2

Conf.Dr.Ing. S.Paturca
I.1.4 Roboti in psihoterapie

• Robotul poate prelua rolul psihoterapeutului

• Exemplu: sistem robot Eliza - Sistem de


inteligenta artificiala, care utilizeaza principii
de baza din psihoterapie , poate face
interventii psihoterapeutice minimale.

Conf.Dr.Ing. S.Paturca
I.1.5 Roboti medicali in stadiul de cercetare

Nanorobotii - sisteme microscopice pentru curatarea arterelor si


vaselor de sange, si pentru a intari sistemul imunitar.

Conf.Dr.Ing. S.Paturca
(Pg.1)

Folosiţi pentru compania persoanele vârstnice.


Exemple de roboti utilizati in acest rol - animalele robotice (exemplul prezentat in fig.
– Foca Paro), introduse in institutiile de ingrijire a varstnicilor cu scopul de a stimula
interactiunea dintre pacienti si a le creste calitatea vietii.

În cazul pacienţilor în vârstă afectaţi de Alzheimer roboţii pot aplica metode de


stimulare cognitivă şi fizică. S-a observat prin studii, faptul că stimulările
cognitive şi fizice ale persoanelor dau rezultate comparative cu metodele
farmaceutice. Conf.Dr.Ing. S.Paturca
(Pg.2)
Folosiţii pentru ajutorul şi amuzamentul copiilor autişti,

Fig. Robot Nao, produs de Aldebran


Robotics, Franta.

Copiii cu tulburari de spectru autist prin interactiunea cu roboti isi pot


dezvolta o serie de mecanisme bazale ale mintii (de exemplu, imitatia,
atentia mentinuta, schimbul de rol) si pot asimila o serie de abilitati de
baza (de ex. abilitati sociale).

Conf.Dr.Ing. S.Paturca
Conf.Dr.Ing. S.Paturca
Fig. Exemple de orteze si proteze robotice Fig. Robot-scaun mobil semi-autonom, utilat
cu braţ - Sistem robotic FRIEND
Conf.Dr.Ing. S.Paturca
PRENSILIA SRL

IH2 Azzurra - Self-contained robotic hand


Intrinsic robotic hands with all functional components (5 motors, tactile sensors and control electronics)
integrated in the palm and in the underactuated, self-adaptive fingers. Able to perform multiple grasps
and sense objects. Simple communication interface (RS-232 over USB or Bluetooth). Standard
prosthetic wrist attachments available (compatible with Ottobock QWD).
The compact size of these hands allows using them in research, evaluation and clinical experience with
humans in real daily living environments on human-machine interfaces (either invasive or non-invasive)
and control (EMG, ENG, EEG, sensory feedback systems, etc). Not only! Due to their light weight and
anthropomorphism they are suitable as robotic end-effectors on limited pay-load robotic arms.

Mia is an electric anthropomorphic end effector, suitable in: flexible manufacturing plants, social and/or
humanoid collaborative robots, bio-automation, ergonomics, prosthetics, human-machine interface
research, and wherever a gripper with hand-like features may become handy. The three embedded
motors allow to interact with the environment and to grasp objects and tools as humans do. Fingertip
sensors allow to regulate the grasping force. Embedded functions and a simple control interface based
on RS-232 makes integration seamless, saving you money and time.

Designed and engineered by Prensilia,


Structuri robotice pentru recuperare

Roboţi recuperativi:
• necesari pacienţilor aflaţi în perioada de
recuperare (exemplu: pentru refacerea
pacienţilor cu probleme neuro-
locomotorii, prin antrenament cu: orteze
robotice, exoschelete, etc.);

Conf.Dr.Ing. S.Paturca
I.1.7.4 Sisteme de tip exo-schelet

Fig. Exemple de sisteme de


tip exo-schelet

Conf.Dr.Ing. S.Paturca
Conf.Dr.Ing. S.Paturca
Robotii pentru recuperarea pacientului

• pot monitoriza activitatea si starea pacientul, exerciţiile pe care le-a


făcut, modul cum au fost efectuate, şi pot corecta miscarile acestuia.

• pot să-i ofere pacientului feedback, şi pot să întocmească rapoarte


pe care sa le transmita medicului. Astfel, în funcţie de informaţiile
prezentate medicul poate să schimbe schema de terapie a
pacientului, sau să o adapteze în aşa fel încât să devină mai eficientă.

Conf.Dr.Ing. S.Paturca
I.2 Provocări în robotica medicală
• Interfaţarea roboţilor prin diverse tipuri de senzori, atât cu
zona de intervenţie, cât şi cu medicul curant; Dezvoltarea
de interfeţe om-robot cât mai intuitive şi prietenoase este o
direcţie importantă de studiu.
• Extinderea conexiunilor între realitatea virtuală şi robotica
medicală;
• Dezvotarea abilităţilor de mobilitate, manipulare, control şi
interacţiune operator-robot, inclusiv prin softuri deschise;
• Dezvoltarea aplicaţiilor software prin trecere de la percepţie
către cognitivitate; Conf.Dr.Ing. S.Paturca
Provocări în medicina si robotica medicală

• Optimizarea transferului de informaţii între pacient,


medic, policlinică, spital, reţeaua clinică, casa de
asigurări de sănătate suport pentru procedurile
medicale;
• Dezvoltare de noi produse informaționale, ce pot
susține cercetarea de specialitate, prin descoperire
de afecţiuni;
• Ȋmbunătăţirea logisticii clinicii, etc.

Conf.Dr.Ing. S.Paturca
Provocări în medicina si robotica medicală
• Aplicarea şi dezvoltarea actualului concept medical de predicţie,
prevenţie, personalizare, participare (P4 Medicine*), în cunoaşterea
exactă a antecedentelor medicale, a diverselor patologii cunoscute, a
tratamentelor şi cauzelor acestora, cu extidere pentru obţinerea de
noi date şi analize statistice şi euristice despre evoluţiile bolilor, cât şi
pentru aplicare de terapii noi, pentru o îngrijire medicală
personalizată, fără efecte adverse şi cât mai eficace;
*https://www.systemsbiology.org/research/p4-medicine/

• Ȋmbogățirea bazelor de date medicale, utile personalului medical de


specialitate, prin înregistrări de la pacienţi multipli;
• Monitorizarea on-line (a parametrilor vitali ai pacientului) şi diagnostic
individualizat al pacienţilor cu capacitate de decizie în vederea alegerii
procedurilor terapeutice de administrare medicamentoasă şi prevenţie;
Conf.Dr.Ing. S.Paturca
Conf.Dr.Ing. S.Paturca
Conf.Dr.Ing. S.Paturca

I.2.2 Ingrijire medicala personalizata


Conf.Dr.Ing. S.Paturca
Conf.Dr.Ing. S.Paturca
I.2.3 Diversitate de aplicatii
Prezent - viitor

Conf.Dr.Ing. S.Paturca
Realitate virtuala si
realitate augmentata
• http://www.gesturetekhealth.com/

Enabling and Assistive Technology for Disabilities


Interactive Information Displays
Recreation and Activation

Conf.Dr.Ing. S.Paturca
Realitate augmentata
Surgery
Augmented
Pad
Reality
Surgery
using iP

Conf.Dr.Ing. S.Paturca
Curs 1.2

1. STRUCTURA SISTEMICĂ A ROBOŢILOR

Un pas necesar în proiectarea unui robot este înţelegerea şi


cunoaşterea sistemelor ce compun structura robotului. Robotul
poate fi privit, în contextul realizării sarcinilor specifice, prin prisma
propriei capacităţii de a prelua semnale din mediu şi a le procesa în
vederea planificării şi executării acţiunilor mecanice,
corespunzătoare sarcinii pe care trebuie s-o îndeplinească.

Fig 1 Schema structurală a unui robot complex

În figura 1 este prezentatǎ schema sistemicǎ a unui robot complex,


care poate fi detaliatǎ mai departe, astfel încât să fie puse în
evidenţă subsistemele funcţionale.
Robotul este o maşinǎ complexǎ, flexibilǎ, adaptabilǎ prin program
schimbǎrilor survenite în sarcina ce-o executǎ. În acest context
trebuie cunoscut atât sistemul de conducere-control (calculatorul)
care asigură programabilitatea şi comanda părţii mecanice, cât şi
sistemul mecanic al robotului, cel care implementează sarcinile şi
acţiunile date acestuia.

Acesta este caracterizat şi de faptul cǎ poate realiza funcţii tipic


umane, cum ar fi: citire de informaţii din zona de lucru prin

Cadru didactic Conf.dr.ing. S.Paturca


intermediul senzorilor cu care este utilat, interacţiune cu mediul de
lucru, prin executarea de acţiuni mecanice (de manipulare de
obiecte, sau generării şi aplicării de forţe, etc.), deplasare, luare de
decizii conform propriului program, comunicare despre îndeplinirea
sarcinilor cerute, cǎtre operator sau cu alţi roboţi, etc.

În funcţionarea robotului este necesară asigurarea mobilităţi


propriei structuri mecanice. Mişcarea relativă a elementelor
mecanice este realizatǎ de sistemul de acţionare, care are ca şi
componente elemente de acţionare pentru fiecare cuplă cinematică
conducătoare.

Conform teoriei privind conducerea unui sistem, acesta este un


sistem dinamic, multivariabil, neliniar şi complex.

Se poate spune că structura globalǎ a unui sistem robot este, de


fapt, un sistem compus din mai multe subsisteme, care reprezintă
un ansamblu de părţi componente, elemente, şi legăturile dintre
acestea. La rândul lor subsistemele pot avea şi ele subsisteme, din
acest motiv există o ierarhizare şi anume sistemul principal se
numeşte sistem de rangul 1, subsistemele se numesc sisteme de
rangul 2, etc.

Robotul este un sistem de rangul 1, compus din mai multe


subsisteme, dupǎ cum este ilustrat în figura 2, care sunt prezentate
în continuare.

1.1 Sistemul de conducere

Sistemul de conducere determină dimensiunea domeniului de


aplicabilitate a sistemului robotizat şi clasifică nivelul său de
“inteligenţă”.

Cadru didactic Conf.dr.ing. S.Paturca


La nivelul acestui sistem se executǎ operaţii complexe, care îi
permit robotului să-şi execute sarcinile în mod autonom, printr-o
succesiune de actiuni elementare, adaptate la starea mediului şi
care, parţial sau total, nu au fost explicitate în instructiunile date
iniţial de operatorul uman. Un exemplu este planificarea mişcărilor,
corelatǎ cu modele geometrice, cinematice şi dinamice specifice
structurii.

Fig. 2.a Sisteme specifice structurii funcţionale a robotului


Sistemul de conducere reprezintǎ nivelul ierarhic superior, care
primeşte informaţii de la sistemul senzorial, ia decizii şi trimite
comenzi cǎtre sistemul de comandǎ al axelor (fig. 2.a).
Sistemul primeşte de asemenea comenzile de la operatorul uman.
În acest sens, comunicarea eficientă om-robot este una din
problemele fundamentale ale automatizǎrii flexibile programabile.
Astfel, au aparut şi s-au dezvoltat limbaje specializate de
programare a roboţilor, structurate pe mai multe niveluri ierarhice.
Nivelul ierarhic superior (zero) al robotului îl reprezintă operator.
Scopul acestuia este de control, supraveghere şi decizie globală,
intervenind atunci când: în situaţii de avarie, la apariţia unor
perturbaţii externe neprevăzute, sau atunci cand sunt necesare
schimbării de direcţii strategice superioare de conducere.
Informaţia (program), necesară funcţionării robotului este furnizatǎ

Cadru didactic Conf.dr.ing. S.Paturca


de operator/programator, care are în permanenţă posibilitatea
modificării acesteia.
Nivelurile ierarhice ce pot apǎrea într-un sistem de conducere sunt
următoarele:
- recunoaştere obiecte, corespunde sistemelor ce dispun de
posibilitatea recunoaşterii obstacolelor întâlnite în spaţiul de
intervetie. La acest nivel se permite luarea deciziilor adecvate în
cazul schimbǎrii mediului şi condiţiilor de operare robot.
- strategic, asigură repartizarea operaţiilor preconizate, în operaţii
elementare.
- tactic, permite distribuirea mişcărilor elementare în mişcarea pe
fiecare grad de libertate.
- executiv, coordonează funcţionarea diverselor sisteme de
acţionare asociate gradelor de libertate ale robotului.
Urmarind aceasta ierarhizare se poate exprima complexitatea
sistemului robot prin gradul de evoluţie al acestuia, care este direct
influenţat de informaţiile introduse, înaintea oricǎrei utilizǎrii, în
propriul sistem de calcul, de decizie şi de comandǎ.
Robotii inteligenţi (evoluaţi) pot fi complet autonomi, gradul lor de
inteligenţă fiind funcţie de scopul pentru care sunt proiectaţi. În
consecinţǎ se poate spune cǎ existǎ douǎ condiţii complementrare
care sǎ defineascǎ noţiunea de robot evoluat („inteligent”), şi
anume:
a) condiţia de a “înţelege” o problemǎ, de a o rezolva şi a-şi
genera comenzi cǎtre actuatore (sistemul electro-mecanic şi
de control al mişcǎrii), în scopul rezolvǎrii sarcinilor cerut;
b) condiţia de a-şi modifica modul de acţiune pentru rezolvarea
sarcinilor cerute, pe baza informaţiilor primite de la sistemul
senzorial propriu, despre mediul extern robotului.

Cadru didactic Conf.dr.ing. S.Paturca


Robotul inteligent se poate defini ca un sistem capabil să execute
sarcini care necesită şi anumite calităţi umane: adaptarea,
învăţarea, capacitatea de reprezentare a mediului înconjurător,
predicţia şi planificarea, etc.
In concluzie, robotul ca echipament include sisteme de procesare,
care îi conferă caracteristica de programabilitate, sistemul mecanic,
care trebuie să-i asigure flexibilitate în utilizare, şi să-i permită
materializarea diferitelor mişcări, conform aplicaţiei program rulată
pe de sistemul de procesare al acestuia.
Procesarea are loc la nivelul unitatii centrale de procesare a
robotului, care poate fi un procesor sau microcontroler (MCU) (de
cel puţin 32 de biţi), unde sunt stocate sistemul de operare,
programele şi datele. Aici se asigură interpretarea instrucţiunilor de
nivel înalt şi transformarea lor în comenzi specifice către sistemul
de comandǎ (spre exemplu pentru comanda axelor robotului).

Fig. 2.b. Exemplu de arhitectura generală pentru sistemul de procesare si flux de informatii

Cadru didactic Conf.dr.ing. S.Paturca


Nu in ultimul rand, înțelegerea componentei software este un pas
important în funcţionalitate roboţilor. Algoritmii decizionali construiţi
trebuie să fie compatibili cu structura globală de conducere,
comandă şi execuţie a robotului.

1.1.1 Sistemul de comandă pe axe


Sistemul de comandǎ pe axe reprezintǎ un ansamblu de programe
şi de echipamente care decide realizarea acţiunilor şi mişcărilor
specifice îndeplinirii sarcinilor robotului (fig. 2.c). Sistemul de
comandă poate fi reprezentat de unul sau mai multe sisteme de
procesare interconectate, cu dotari hardware si software specifice
aplicaţiilor de robotică. Sistemul de comandă poate fi şi un sistem
cu procesor/MCU pe 8 sau 16 biţi. Aici sunt prelucrate informaţii de
la traductoarele de axă sau cele externe.
Sistemul de comanda al unui robot determină flexibilitatea şi
eficienţa acestuia, în limitele prestabilite prin proiectarea structurii
mecanice. Sistemul de comandă furnizează situările teoretice
necesare fiecarei etape de lucru şi înregistrează continuu situarea
curentă în timpul mişcării. În timpul operării robotului, sistemul de
comandă calculează marimile teoretice, evaluează diferentele între
acestea şi marimile măsurate, înregistrează (memorează) datele şi
generează mişcarea.

Fig. 2.c Sisteme specifice structurii funcţionale a robotului

Cadru didactic Conf.dr.ing. S.Paturca


1.2 Sistemul de acţionare

Sistemul de acţionare are rolul de a transmite energia de la sursă la


structura mecanică. Sistemele de acţionare pot fi electrice,
hidraulice sau pneumatice.
Un sistem de acţionare electricǎ este format din convertoare de
putere şi motoare. Motoarele realizează mişcarea relativă a
elementelor mecanismelor sistemului mecanic, având rolul
asemănător sistemului muscular al omului. Fiecare cupla
cinematică a robotului este prevazută cu câte un motor de
acţionare.

Fig. 2.c Sisteme specifice structurii funcţionale a robotului

Cele mai uzuale sunt servomotoarele, motoarele pas cu pas,


motoarele de c.c. cu sau fǎrǎ perii.
Sistemele de acţionare electricǎ sunt utilizate în situaţiile care
necesitǎ un control precis al mişcǎrii.

Control
centralizat

Fig. 2.d Control in bucla inchisa

Cadru didactic Conf.dr.ing. S.Paturca


1.1.2 Sistemul senzorial

Sistemul senzorial este constituit din senzori şi traductoare care


furnizeazǎ informaţii despre mediul exterior robotului şi despre
starea sa internǎ (fig. 2.b). Pentru reprezentarea mediului se
utilizează senzori necesari: detecţiei obiectelor, recunoaşterii
formelor, determinarea distanţelor, determinarea parametrilor
mediului de lucru (temperaturǎ, umiditate, compoziţie etc.),
precum şi a acţiunii acestuia asupra robotului (prin forţe, cupluri,
etc.). Informaţiile despre stare internǎ a robotului constau în date
despre sarcina îndeplinitǎ (cuplu, presiune, s.a) sau necesare
stabilirii poziţiei şi orientării proprii, şi faţă de obiectele din spaţiul
de lucru (poziţia liniarǎ sau rotativǎ a segmentelor, viteze,
acceleraţii relative etc.).
Complexitatea sistemului senzorial este datǎ de funcţiile robotului
şi procesele interne de realizare a acestor funcţii, structura
robotului (mobilă sau cu bază fixă) şi structurile specifice de
comandă, control şi execuţie, tipurile specifice de sarcini, mediul de
lucru.

1.3 Sistemul mecanic

Acest sistem defineşte natura şi amplitudinea mişcărilor ce pot fi


realizate de robot, având rol analog scheletului uman (fig. 2.e).
Sistemul mecanic al unui robot depinde de tipul robotului: fix sau
mobil. În cazul structurilor robotice complexe sistemul este
constituit din mai multe elemente legate între ele prin cuple
cinematice, prin care este asiguratǎ deplasarea, poziţionarea şi
orientarea efectorului final.
Subsistemul din sistemul mecanic care realizează sarcina
mecanică, şi asigură poziţionarea şi orientarea efectorului terminal

Cadru didactic Conf.dr.ing. S.Paturca


în raport cu un sistem de referinţă considerat este dispozitivul de
ghidare sau manipulatorul.
Se urmăreşte ca structura mecanică să asigure: mobilitate cât mai
mare; greutate cât mai mică, supleţe; randament energetic ridicat.
Subsistemul mecanic de locomoţie specific roboţilor mobili, asigură
poziţionarea şi orientarea corpului robotului în raport cu suprafaţa
de susţinere în vederea deplasării întregului ansamblu. Sistemele
de contact cu suprafaţa de susţinere pot fi: roţi, şenile, talpa sau
combinaţiile acestora.

Fig. 2.e Sisteme specifice structurii funcţionale a robotului

Cadru didactic Conf.dr.ing. S.Paturca


2.Arhitecturi de sisteme robotice medicale

Cadru didactic Conf.dr.ing. S.Paturca


Cadru didactic Conf.dr.ing. S.Paturca
Cadru didactic Conf.dr.ing. S.Paturca
Cadru didactic Conf.dr.ing. S.Paturca
Cadru didactic Conf.dr.ing. S.Paturca
Cadru didactic Conf.dr.ing. S.Paturca
Cadru didactic Conf.dr.ing. S.Paturca
Curs 2 + 3
Sistemul de procesare

Structura de baza a sistemului cu procesor

Memorie Magistrale
Memorare Memorare - grupurile de interconexiuni cu functii similare, care leaga
program diversele sectiuni ale unui sistem microprocesor
date MICROPROCESOR
secventele de datele numerice (de
instructiuni ce intrare, rezultate
alcatuiesc programul intermediare sau
finale) (CPU)

control
magistrala date/adrese
Interfete periferice magistrala date
Iesire Intrare

Culegere de informatii din exterior (marimi numerice, analogice,


De la / la periferice semnalizari),
- prelucrari (diversi algoritmi de calcul si decizie),
echipamente interfete specifice de conectare la
- actionari spre exterior (prin comenzi numerice, analogice, semnalizari
standard un proces fizic controlat
diverse, comunicand rezultatele operatiilor efectuate, etc.)
(tastatura, afisaj, (traductoare, elemente de executie,
etc.), etc.).
Structura de baza a
sistemului cu procesor
Structura functionala si fluxul de informatii intr-un sistem
cu microprocesor

Prin functia de intrare Intrare Memorie Iesire


(INPUT), sub coordonarea
functiei de control, informatia UAL - colectie de circuite
este adusa in memoria logice complexe,
sistemului. U.A.L.
programabile, capabile sa
proceseze date numerice, pe
Control
baza unui set de instructiuni
Microprocesor
ale utilizatorului, uzual bazate
control
pe operatii fundamentale:
informatie adunare, scadere, si operatii
Fluxul de informatii logice.

Sectiunea de CONTROL:
§ genereaza si coordoneaza toate semnalele de control necesare pentru a executa operatiile de calcul din
ALU, si sincronizeaza transferul datelor in sistem.
§ decodifica si executa instructiunile programului pe baza caruia functioneaza intregul sistem.
Bit TTL: (0; 0.4) V -> “0”; (2.4; 5) V -> “1”
– unitate elementara de informatie

– poate avea valoarea “0” sau “1”.

o Aceste valori corespund fizic unor


nivele de tensiune, în funcţie de
circuitele electronice cu care este
construit calculatorul.

– starea unui bistabil, sau a unei celule


elementare de memorie
• Cuvant de date: 8, 16, 32, 64, 128...
• Capacitate de adresare: 2k, 64k, 1M,…xG
• Frecventa de lucru: 2MHz ... 3GHz..
• Tipuri de date: intregi, floating-point, …
• CPU+memorie+interfete / microcontrolere (MCU)
• Calculatoare de uz general / sisteme integrate
(embedded)
Terminologie

Two types of memory commonly used in microcomputers are RAM, which stands for
“random access memory” (sometimes called read/write memory), and ROM, which stands
for “read-only memory.”

RAM is used by the computer for temporary storage of programs that it is running. That data
is lost when the computer is turned off. For this reason, RAM is sometimes called volatile
memory.

ROM contains programs and information essential to operation of the computer. The
information in ROM is permanent, cannot be changed by the user, and is not lost when the
power is turned off. Therefore, it is called nonvolatile memory.

titular curs Conf.Dr.Ing. Sanda Paturca


Ø Sistem de procesare pe 8 biţi se numesc octeţi (în engl. bytes).
Octet (byte):
– grup de 8 biti
– unitatea elementara de adresare la cele mai multe calculatoare actuale (inclusiv Intel
x86)
– poate reprezenta: o valoare numerica, un caracter (cod ASCII), un set de variabile
(semnale) logice

B7 B6 B5 B4 B3 B2 B1 B0

B7 - bitul cel mai semnificativ B0 - bitul cel mai putin semnificativ

Note:
1 K sau 1 Kilo octet (1 Kilo byte) = 1024 bytes -> (210)
1 M sau 1 Mega octet (1 Mega byte) = 1024 K ->(220)
1G sau 1 Giga octet (1 Giga byte) = 1024 M -> (230)
• Cuvant (word)
D15-D8 - octetul superior (High)
D7-D0 - octetul inferior (Low)

- folosit pt. reprezentarea intregilor, simpla precizie


B15 B14 B13 B12 B11 B10 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0

n Dublu-cuvant (double word):


q 32 biti, 4 octeti, 2 cuvinte
q D31-D16 cuvantul superior
q D15-D0 cuvantul inferior
q folosit pentru reprezentarea numerelor in virgula fixa (dubla precizie la sistemele pe
16 biti) sau in virgula flotanta
B31 ...... B24 B23 ...... B16 B15 ...... B8 B7 ...... B0
• Cuadruplu-cuvant (quad-word)
B63 B0

– 64 de biti, 8 octeti, 4 cuvinte, 2 dublu cuvinte


– folosit pentru reprezentarea numerelor in virgula fixa
(dubla precizie pt. sist. pe 32 biti) si in virgula flotanta
(mobila)
• Formate extinse:
– 80 de biti - pt. reprezentarea numerelor in virgula
flotanta (formate interne/intermediare)
baza sistemul simboluri/cifre

2 Binar 0, 1

8 Octal 0,1,2,3,4,5,6,7

10 Zecimal 0,1,2,3,4,5,6,7,8,9

16 Hexazecimal 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

Sisteme de numeratie:
– sistemul binar - putine reguli, multe cifre
– sistemul zecimal - multe reguli, mai putine cifre
– sistemul hexazecimal - intermediar intre binar si zecimal
Exemple - Reprezentari numerice

( 110 001 011 100 )2 ( 4 3 2 7 )8


( 6 1 3 4 )8 ( 100 011 010 111 )2

( 1011 1010 0011 0010 )2 ( 4 F C 2 )16


( B A 3 2 )16 ( 0100 1111 1100 0010)2
____________________________________________________

8 biti = octet / byte

cuvinte de: 8 / 16 / 32 / 64 biti

• Numere: - intregi – fara semn / cu semn


- fractionare
- virgula mobila
N, in baza b de numarare, n cifre supraunitare (an-1, an-2, ... , a0), si m cifre subunitare
(a-1, a-2, ... , a-m), are valoarea în baza 10:

(N)10 = an-1bn-1 + an-2bn-2 + ... + a1b1 + a0b0 + a-1b-1 + ... + a-mb-m

Ex: N = (1011.11)2

(N)10 = 1*23 + 0*22 + 1*21 + 1*20 + 1*2-1 + 1*2-2 = 8 + 0 + 2 + 1+ 0.5 + 0.25 = 11.7510

Aritmetica numerelor întregi, interpretate pozitive (fara semn)

Adunarea / scaderea.
27 26 25 24 23 22 21 20
1 1 0 1 1 0 1 1 +
0 1 0 0 0 1 1 0
1 0 0 1 0 0 0 0 1
Depasire (overflow / borrow)

8 biti -> [0, 255] (28-1)


16 biti -> [0, 65535] (216-1)
Exemple -Aritmetica numerelor întregi, cu semn

• Complement fata de 2 (2's complement)

[X]2 = 2n – X ( [X]2 = - X ) Ex: X = 610 = 01102, n=4


Þ [X]2 = 24 - 0110 = 10000 - 0110 = 1010

(a) se inverseaza toti bitii numarului, si se aduna 1 la cel mai


putin semnificativ bit.

De exemplu, fie: X = 0110


X inversat va fi 1001
se adună 1 1
Rezultat: [X]2 = 1010
Exemple - Aritmetica numerelor întregi, interpretate cu semn

(b) se lasa neschimbate cifrele din numar pâna la


primul 1, inclusiv (de la dreapta la stânga),
inversându-se celelalte cifre.
Ex: X=0110 => [X]2 = 1 0 1 0
 |
se inverseaza ramân nemodificate

8 biti -> [-128, + 127]


16 biti -> [-32768, +32767]

• Overflow / borrow
• Inmultirea – separat module, semne
Exemple - Aritmetica numerelor fractionare

Format Q (numere subunitare)

X = 0 . x7 x6 ... x0 => [X]10 = x7 2-1 + x6 2-2 + ... + x0 2-8

N = 0.00000000 = 0/256 = 0 ; N = 0.11111111 = 255/256 = 0.99609375


1 bit = 1/256 = 0.00390625

Q15 -> 16 biti, 1 de semn


[-1, +1); 1 bit = 2-15

• eroare de trunchiere
• eroare de rotunjire

Format IQ (numere cu parte intreaga si parte fractionara)

X = xn xn-1 … x0 , x-1 x-2 ... x-m


Exemple - Reprezentarea numerelor reale (floating-point)

Simpla precizie – 32 biti:

- Exponent 8 biti: intreg, cu semn: [-128, +127]


- Mantisa 24 biti: fractionar cu semn, subunitar (Q23): [-1., +1.)
- Gama de valori:
- Minim: 2-127 = 5.87747 * 10-39
- Maxim: 2127 = 1.70141 * 10+38
- Precizia (1 bit): 2-23 = 1.19209 * 10-7

s (7 biti) s (23 biti)

Exponent Mantisa

Valoare numar:
N = 2Exponent * Mantisa
Logica booleana

Postulate
x = 0 daca x  1; x = 1 daca x  0

0 1 1 0
0 0  0 11  1
1 1  1 00  0
10  0 0 1  1
Teoreme cu o singura variabila
Logica booleana

Teoreme cu 2 sau 3 variabile


x y  yx x y  yx
x  ( x  y)  x ( x  y)  y  x  y
x  y  z  x  ( y  z)  ( x  y)  z
x  y  z  ( x  y)  z  x  ( y  z)
( x  y)  ( x  z)  x  ( y  z)

Teoreme cu n variabile
(Teoremele De Morgan)
( x  y  z  ...)  x  y  z ...
( x  y  z  ...)  x  y  z  ... (Teroremele expansiunii)
f ( x1, x2 ,...,xn )  [ x1  f (1, x2 ,...,xn )]  [ x1  f (0, x2 ,...,xn )]
f ( x1, x2 ,...,xn )  [ x1  f (0, x2 ,...,xn )][ x1  f (1, x2 ,...,xn )]
Porti Logice

Poarta TTL (Transistor Transistor Logic) logic 1: (2 - 5) V


logic 0: (0 0.8) V
+5V
Intrari Iesire
160
4.7k 1k A B C
Intrare
A Iesire 1 1 0
B C

470
1 0 1
0 1 1
0 0 1

Tabela logica a portii TTL

Functie: implementarea electronica a unei functii logice binare


CMOS Complementary Metal Oxide Semiconductor
Porti Logice

A B AND OR NAND NOR XOR ExNOR


0 0 0 0 1 1 0 1
0 1 0 1 1 0 1 0
1 0 0 1 1 0 1 0
1 1 1 1 0 0 0 1
Simbol A&B A|B ~(A&B) ~(A|B) A^B ~(A^B)

A A A
f=AB f=A+B f=A + B
B A&B
B A|B
B A^B
AND OR XOR

A A A
B
f=AB
B f=A+B f=A . B
~(A&B) B
~(A|B) ~(A^B)
NAND NOR Ex-NOR
Porti Logice
Porti Logice

Inversorul Reprezentari logice alternative

A f=AB A
f=A+B
A f B B
A f=A 0 1 (a)
~A
1 0
(a) A f=A+B A f=A B
"1" B B
(b)
f=A1=A
A A A
f=AB f=A + B
B B
A (c)
f = A+0 = A
A A
(b) f=A+B f=A B
B B
(d)
Poarta Tri-State / Buffer / Circuit Tampon

- starea de mare impedanta la iesirea circuitului permite decuplarea semnalului de iesire de


intrarea circuitului
- iesirile mai multor circuite tri-state pot fi conectate impreuna, nivelul logic pe iesirea comuna
fiind dictat de circuitul activat (cu semnalul de selectie E=1) la un moment-dat.
A1 A2 A3 A4
E E
1 0 0 0
A Out A Out EA1 EA2 EA3 EA4

A E Out A E Out
x 0 High z x 0 High z
0 1 0 0 1 1 0 0 1 0
1 1 1 1 1 0 EB1 EB2 EB3 EB4

(a) (b) B1 B2 B4
B3 = A1
Functie: permite transferul informatiei pe o cale comuna mai
multor circuite, prin posibilitatea de izolare / transfer
controlat a semnalului logic de intrare de / la cel de iesire
Poarta Tri-State / Buffer / Circuit Tampon
continuare
Circuitele basculante bistabile

- Circuitele basculante bistabile - circuite logice secvenţiale cu 2 stări


stabile (distincte), tranziţia între cele 2 stări făcându-se odată cu aplicarea
unor semnale de comandă din exterior.
Bistabilul D
Bistabilul D este cel mai utilizat in sistemele cu microprocesoare ca element de memorie de 1 bit
(mai rar se utilizeaza si bistabile de tip T, SR, sau JK).

Dt Qt Q t t
D Q bistabilul tip D întârzie starea, adică
0 0 0 ieşirea la momentul t t este
Q aceeaşi cu intrarea la momentul t
0 1 0 (celulă de întârziere sau de
Clk memorare).
1 0 1
1 1 1

t t t t
Q  (D Q  D Q)  D
Functie: implementarea electronica a unei celule (bit) de memorie
Bistabilul D Bistabilul D cu inscriere pe
nivel sau pe front

D Q D Q
Q Q Bistabilul D activ pe front.
Clk Clk => valoarea semnalului de la
1 1 intrarea D este transmisa la
Clk 0 Clk 0
1
iesirea Q, la trecerea semnalului
D 0 1 Clk din starea “1” in starea “0”,
D 0
1 1 deci pentru front descrescator,
Q 0 Q 0
(a) (b)
sau la trecerea semnalului Clk
din starea “0” in starea “1”, deci
pentru front crescator
D Q D Q
Q Q
Clk Clk
1 1
Clk 0 Clk 0
1 1
D 0 D 0
1 1
Q 0 Q 0
(a) (b)

Bistabilul D activ pe nivel


=> pe perioada nivelului activ al semnalului Clk (1 in cazul din figura a, respectiv 0 in
cazul din figura b), iesirea Q urmareste variatiile intrarii D.
La dezactivarea semnalului Clk, iesirea Q ramane in ultima stare in care a fost.
Bistabilul D
S
Semnalele Set, Reset
D Q
Clk
Q

este interzisa valoarea 0, simultana, a celor doua


semnale S (set -inscriere)si R (reset -stergere).

Conversia din bistabile SR sau JK in bistabile D


D D
J Q S Q
Clk Clk
K Q R Q

Circuit basculant bistabil SR Circuitul basculant bistabil JK


Bistabilul D

latimea minima a
semnalului de ceas
1
Clk 0 tw

1
D 0 t su th

datele trebuie sa fie


stabile

tw – latime puls (width)


tsu – timp stabilire (setup)
th – timp de mentinere (hold)

Intarzierile la tranzitii ale Q de la 0 la 1, respectiv de la 1 la 0, sunt date de catalog ale


circuitului, la fel ca si cele referitoare la semnalele de setare si resetare.
Registre

Registru - sir de bistabile; permite memorarea si / sau deplasarea informatiei la comanda impulsurilor de
tact
- Deplasarea informatiei se poate face într-un singur sens sau în ambele sensuri.
- Înscrierea informatiei în registru se poate face serial - bit dupa bit, toti bitii cuvântului de n biti) sau
paralel - cei n biti se scriu simultan în registru.
- Citirea registrului se poate face serial - bit dupa bit, sau paralel - toti bitii simultan.

PIPO (Parallel Input –


Parallel Output)

SISO (Serial Input - Serial Output)


PISO (Parallel Input - SIPO (Serial Input - -SR (Shift Right) SL (Shift Left)
Serial Output) Parallel Output)

rotirea informatiei
Registre paralele

- operatie frecventa intr-un microprocesor este transferul paralel al datelor intre doua registre

Incarcate initial in registrul A, datele sunt transferate in registrul B la aparitia semnalului TRANSFER pe linia
de ceas a registrului B.
Continutul registrului A este neschimbat, pana la o modificare ulterioara (stergere, incarcare cu alte date)

La primirea semnalului de control T, se transfera continutul registrului A in


registrul B. Acest tip de registru este de tip PIPO (Paralel Input Paralel
Output = intrare paralela, iesire paralela)

Schema bloc Transfer T:(B)<-(A)


date iesire
A7 A6 A0
D D D
7A 6A 0A

READ Reg.A
Clk

B7 B6 B0
D D D
WRITE 7B 6B 0B

Reg.B
Clk
date intrare
Transfer

Functie: implementarea electronica a unui cuvant de memorie


Registre seriale

Schema bloc
D P
J7 J6 J0

K6 Q
K7 K0

Clk

Transferul unui bit de la intrarea D pana la iesirea P a registrului va necesita in


acest caz 8 semnale de ceas. Acest tip de registru se numeste SISO ( Serial
Transfer Input Serial Output = intrare seriala, iesire seriala)

registrul A isi pastreaza continutul, prin


recircularea informatiei intre iesire si intrare
S S Clk

Clk Reg. A Reg. B


1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0

inainte de transfer
S S Clk
Reg. A Reg. B
Clk
1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0

dupa transfer

Clk

S Clk

Durata transferului - 8 pulsuri de ceas


Registre

Registre Latch Registre cu iesiri tri-state

Date intrare E Date intrare

Q Q O
E
D R D7 D0 Clk D D7 D0 Clk
Clk Reg.Latch Clk Reg.Tri-State
Q7 Q0 R Q7 Q0
R R
Date iesire Date iesire

Reg. de 8 biti de tip Latch, Reg. cu iesirile tri-state.


• utilizeaza bistabile D active pe front pozitiv • inscrierea datelor se face normal
• datele de la intrare sunt transferate la iesirea reg. pe • iesirile O0¸O7 vor contine datele inscrise in
durata niv. "1" al semnalului Clk, ramanand la valorile registru doar la aplicarea semnalului de
avute in momentul frontului cazator al semnalului de activare a circuitelor tri-state de la iesirea
ceas acestuia, prin semnalul de activare E
• semnalul asincron de stergere va trece la valoarea "0"
toate iesirile registrului, simultan
Circuite Logice Programabile (PLD)

PLD (Programmable Logic Device)


- PLA – Programmable Logic Array
- PROM – Programmable Read Only Memory
- FPLA – Field Programmable Logic Array
- FPGA – Field Programmable Gate Array
Programarea circuitului - distrugerea unor fuzibile,
P-term (product term) astfel incat prin conexiunile care raman intacte, sa
se sintetizeze functia logica dorita intre semnalul
de intrare si cel de iesire

A x - prezenta unui fuzibil intact, care


A conecteaza semnalul de intrare la
B poarta logica AND (sau OR) de pe
B coloana respectiva
C A B C
C product-term / P-term -
combinatie a semnalelor de
intrare care se aplica la intrarea
unei porti AND (sau OR) a
(a ) (b ) circuitului PLD
Circuite PLA
Programmable Logic Array

X = p + q + r + s = ABCD + ABCD + EF
linii P-term
A

B Fuzibil intreg

X X
r s
p q
Circuite PROM
Programmable Read Only Memory

- utilizate functional ca memorii cu continut nealterabil (fix), stocand coduri de program, seturi de
tabele de date constante, etc.
- posibila utilizarea in proiectarea circuitelor logice

semnale
de intrare B circuit de memorie
(adrese) cu 8 celule de cate
C 3 biti fiecare

P0 P1 P2 P3 P4 P5 P6 P7 O/P0
semnale de
O/P1
iesire
O/P2

linii P-term fixe

O / P0 = P0 + P2 = CBA + CBA
O / P1 = P2 + P4 = CBA + CBA
O / P2 = P3 + P4 + P5 = CBA + CBA + CBA
Circuite FPGA
Field Programmable Gate Array

Macrocelula

I/O
de la reteaua set
AND multiplexor
Q
D selectie

clk iesiri
Q

reset

catre reteaua
AND MUX control
multiplexor
reactie iesiri
MUX control

Macrocelule - inlocuiesc circuitele OR si bistabilele, cu structuri flexibile, ce pot fi programate


in diverse configuratii. Astfel, iesirile pot fi programate sa fie active High sa Low
se pot utiliza semnalele de iesire direct sau ca semnale de intrare, intrarile asincrone ale
registrelor pot fi programate, si chiar tipul registrului poate fi setat (D, SR, T sau JK).
Multiplexoare
Un multiplexor selecteaza o iesire din n intrari. Selectia liniei de iesire se face cu semnale de control.

Figura prezinta un asemenea multiplexor cu patru intrari (D0, D1, D2 si D3), si iesirea f (si negata sa)

Din punct de vedere functional,


multiplexorul poate fi privit ca
un comutator cu mai multe
pozitii, selectand una dintre ele
la un moment dat

Liniile de control A si B si semnalul de activare E complecteaza circuitul.


Demultiplexoare si Decodificatoare

Demultiplexoare
- indeplinesc functia opusa multiplexorului.
- poate fi utilizat la convertirea unui sir de semnale numerice transmise serial,
intr-o forma paralela.

Diagrama bloc a acestui circuit Linia de intrare D poate fi conectata la


oricare dintre cele patru linii de iesire, prin
semnalele de control A si B.
Fiind posibile 4 combinatii distincte ale celor
doua semnale de control A si B, circuitul va
avea in acest caz patru linii de iesire.

Ex. pentru cazul A=0, B=0, semnalul D este


transferat la iesirea O0 (la activarea
circuitului, prin semnalul E=0), etc.

Fig. Demultiplexor 1 la 4
Decodificatoare

- folosit la selectia cipurilor de memorie, a porturilor sistemului, etc

E C B A O O O O O O O O
O0 0 1 2 3 4 5 6 7
O1
O2
1 x x x 1 1 1 1 1 1 1 1
E Decod O3 0 0 0 0 0 1 1 1 1 1 1 1
O4 0 0 0 1 1 0 1 1 1 1 1 1
3 la 8 O5
O6 0 0 1 0 1 1 0 1 1 1 1 1
O7 0 0 1 1 1 1 1 0 1 1 1 1
0 1 0 0 1 1 1 1 0 1 1 1
0 1 0 1 1 1 1 1 1 0 1 1
A B C
0 1 1 0 1 1 1 1 1 1 0 1
cod intrare
0 1 1 1 1 1 1 1 1 1 1 0

Functie: activarea unica a unuia dintre semnalele de iesire,


corespunzator combinatiei semnalelor de selectie
Decodificator

O0
O1
O2

O7

Decodificatorul 3:8 realizat în tehnologie TTL (74LS138)


Folosire decodificator
Exemple
BANC 0 CSP0
Decodifi-
care
pentru BANC 1
CSP1
selectia
memoriei BANC 2 (CSRAM)
RD
MEMREADY CS CS CS CS
IO/M
RD RAM
RAM
cuart WR PROM PROM

¸
MICRO-
PROCESOR
Magistrala de adrese

Magistrala
READY
¸ ¸ de date
RESET

CLK IOREADY
INT INTA
PORT1 P1O
Decodificare RD P0I Latch
pentru PORT0 Tampon
"1" WR
selectia PORT1
convertoa-
relor
R
Q D (adresate
ca porturi) P0O CN/A
START
CONV
T WR CA/N
EOC
SF.CONV
Bistabil iesire
intrare analogica
analogica
Exemplu implementare

Cadru didactic Conf.dr.ing. S. Paturca


Bibliografie selectiva

S. V. Paturca, s.a, „Comandă, control şi monitorizare pentru sisteme embedded”, Ed.


Printech,2013
Muhammad Ali Mazidi , Danny Causey - Microcontrollers and Embedded Systems, 2019
L.Kreindler, R.Giuclea, Bazele microprocesoarelor, 2007
S. V. Paturca, s,a „Aplicaţii practice folosind roboţii Mindstoms NXT. De la aplicaţii introductive
la roboţi mobili autonomi”, Ed. Matrix Rom, 2009.
S.V. Paţurcă, s.a., An Approach in Biotechnology Education – Laboaratory for Medical
Rehabilitation Robots, Assistive Care and Tele-robots, Journal of Biotechnology, IF=2.667,
Volume 231, Supplement, 2016,
S.V. Paturca, s.a, Biomonitoring Laboratory Oriented to Software Applications Development,
Scientific Buletin of Electrical Engineering Faculty, DeGruyter, 2016
S.V. Paţurcă, Software Platform for Patients Biomonitoring using Wearable Devices, Journal of
Biotechnology; Volume 231S, 2016
S.V. Paturca, s.a, Multiple Sensor Software and Hardware Arhitecture for Field Robots
Conference: 9th International Symposium on Advanced Topics in Electrical Engineering (ATEE)
2011
RIM
Curs 3.2
Exemplu implementare

Cadru didactic Conf.dr.ing. S. Paturca


Exemplu implementare
Exemplu implementare
Exercitii
Sisteme cu microprocesoare Microprocesoare
Sectiunea de memorie a microprocesorului - Concepte generale

Registre speciale:
- PC – contor program
- RI – registrul de intructiuni
Magistral Magistral Magistrala
- ALU – registre interne de control
de date
a ade adrese
- ALU - Indicatori conditie
- MAR – Memory Address Register Selectie registre Registrele speciale
- SP – Stack Pointer - registre de lucru, sau
- etc. registre interne ale uP, cu
R0 functii predefinite
Stack pointer - registru
indicator de adresa al stivei Registre R1 specifice in functionarea
programului de uz Registre uz general sist.
general Din aceasta categorie ->
registrele contor de
Registrele de uz general program (PC), registrul de
- adresabile de catre utilizator, instructiuni RI, registrul
- pot fi folosite pentru Adresa 0 decodificator de
stocarea si manevrarea Adresa 1 instructiuni, etc.
datelor programului precum:
Memorie
operanzi, date, adrese de ROM
ROM
memorie, etc.
Adresa n
- permit:
• incarcarea cu un cuvant
dorit de date, Adresa n+1
• deplasarea informatiei
Memorie RAM
intre registre, sau intre
RAM
registre si memorie, Adresa m
• rotirea continutului
acestora;
• tratarea unei perechi de Registre de uz general sunt conectate atat la alte registre interne
registre ca reprezentand
ale uP, cat si la magistralele externe, prin intermediul
date pe cuvinte cu lungime
dubla si posibilitatea magistralelor interne si al circuitelor tampon sunt utilizate pentru
operarii cu acestea.
c 2017 Liviu Kreindler manipularea si memorarea temporara a datelor. 3-1
Evolutia familiei 80x86 de la 16 biti la 32 biti (incepand cu
80386, 80486, apoi Pentium I, II, IV etc.), catre cele de 64 biti (de la
Core 2 catre Core i3,.. i7......)

<--------16 biti---------> <--------16 biti--------->


<--------16 biti--------->
<---8 biti--I-- 8 biti--->
<---8 biti--I-- 8 biti--->
EAX AH AX AL
AH AX AL
EBX BH BX BL
BH BX BL
ECX CH CX CL
CH CX CL
EDX DH DX DL
DH DX DL
EBP BP
BP
ESP SP
SP
ESI SI
SI
EDI DI
DI
ECS CS ...
CS
EDS DS
DS
EES ES
ES
ESS SS
SS

IP
FLAGS
IP IP
EFLAGS FLAGS
Arhitectura uP 8086
Organizarea memoriei in cazul uP 8086
Software-ul sistemului microprocesor-aspecte generale

Structura principiala a instructiunilor unui microprocesor

MSB LSB

Primul cuvant contine codul operatiei, si eventual, B7 B6 B5 B4 B3 B2 B1 B0 cuvint de date

operandul (operanzii) instructiunii, cuvantul (cuvintele)


instructiune
cod operatie B7 B6 B5 B4 B3 B2 B1 B0
suplimentare (daca exista, in functie de instructiune), ce pe 1 cuvint

contin date necesare la executia instructiunii respective.


cod operatie B7 B6 B5 B4 B3 B2 B1 B0

adresa instructiune
Exemplu, daca codul operatiei indica o instructiune cu trei octeti (fie un sau data B7 B6 B5 B4 B3 B2 B1 B0 pe 2 cuvinte
microprocesor de 8 biti), in care octetii 2 si 3 contin o adresa din
memorie, al carei continut va fi adus in acumulator, succesiunea de cod operatie B7 B6 B5 B4 B3 B2 B1 B0
operatii ce au loc va fi dupa cum urmeaza:

• se citeste primul octet al instructiunii; B7 B6 B5 B4 B3 B2 B1 B0


instructiune
• se decodifica codul operatiei;
pe 3 cuvinte
• conform codului, se mai citesc doi octeti suplimentari (la fiecare citire,
data sau
B7 B6 B5 B4 B3 B2 B1 B0
PC este incrementat), de la adresele succesive primei citiri (instructiunea adresa
are cuvintele unul dupa altul in memoria program);
• se configureaza pe MA adresa desemnata de catre cei doi octeti
suplimentari cititi si se citeste aceasta celula de memorie, continutul ei
fiind transferat in acumulator;
• se trece la citirea si executarea altei instructiuni.
Software-ul sistemului microprocesor – programarea

Limbajul de asamblare: avantaje / dezavantaje Metodologia elaborarii programelor

Reguli de baza: Analiza: algoritm


Organizare: scheme logice
• programatorul raspunde de completa gestionare
a tuturor resurselor sistemului

• in program se specifica adresele pentru fiecare Operatie


conector intrare
variabila, locatie de memorie sau port accesate
la un moment dat
Operatie calcule
• trebuiesc anticipate si evitate situatiile de iesire operatii
aparitie a operatiilor cu rezultate imposibile
(depasiri - overflow sau underflow)

• manipularea datelor la nivel intern se va face Decizie Start sau Stop


in cod binar, ceea ce va implica necesitatea
unor conversii de la/la nivelul utilizator
(valori zecimale, hexazecimale, caractere), la
nivelul maşina (binar)

Codificare: programare
Testare: verificare (revenire si modificare)

Elaborarea documentatiei
Memoria interna a sistemului microprocesor - Memoria RAM

Configuratia unui circuit de memorie cu o capacitate de 1024 celule (biti)


selectie rind

31 992 993 994 995


Decodi-
ficator
pentru 3 96 97 98 99 127
adresa 2 64 65 66 67 95 celula
memorie
rind 1 32 33 34 35 63 de un bit
0 0 1 2 3 31

selectie
coloana
0 1 2 3 31
Decodificator pentru adresa coloana

9876543210

MAGISTRALA ADRESE MEMORIE


Memoria interna a sistemului microprocesor - Memoria RAM

Multiplexarea liniilor si coloanelor unui circuit de memorie RAM dinamic

Selectie
Adresa
LATCH ADRESA RIND
Coloana
( CAS )
LATCH
ADRESA
Selectie
COLOANA Adresa
Rind
( RAS )

CONTROL
RIND/COLOANA
COLOANA
RIND

MAGISTRALA ADRESE MEMORIE


Memoria interna a sistemului microprocesor - Memoria RAM

Utilizarea tipica a a semnalelor de control (citire/scriere, selectie de cip), la o memorie RAM

Circuite scriere

4
3 Circuite

2 citire

WE
CITIRE

CS SCRIERE

CS WE OPERATIA SENS TRANSFER


DATE
0 0 SCRIERE INTRARE
0 1 CITIRE IESIRE
1 0 INALTA
} INACTIV }
1 1 IMPEDANTA
Memoria interna a sistemului microprocesor - Memoria RAM

Prin intermediul decodificatorului intern de adresa, se


A5 A4 A3 A2 A1 A0 CS Selectie
permite selectia unica a cuvantului de memorie dorit.
0 0 0 0 0 0 0 SEL0
Semnalul de R/W (citire/scriere), furnizat de catre logica
0 0 0 0 0 1 0 SEL1
de control a uP , va indica logicii interne a cipului de
0 0 0 0 1 0 0 SEL2
me mo ri e s en s u l tr a n s fe r u l u i d e i n f o r m a ti e,
permitand comanda adecvata a circuitelor tampon ale
memoriei, determinand totodata actiunea de inscriere
...
a datelor prezente de pe MD, pe pinii de date ai cipului,
in celula selectata, la operatia de scriere, respectiv
1 1 1 1 1 1 0 SEL63
transferarea continutului celulei selectate, pe pinii de
X X X X X X 1 -
date ai cipului, spre MD, la operatia de citire.
Memoria interna a sistemului microprocesor - Memoria ROM

ROM (Read Only Memory) / PROM (Programable ROM) / EPROM (Erasable PROM) / EEPROM (Electrically EPROM)

ROM - programate de catre producator, dupa cerintele utilizatorului. Informatia prezenta in memoriile ROM nu se modifica, nici in
cazul unor operatii de scriere accidentala in ele (operatie nepermisa, de altfel), nici la disparitia tensiunii de alimentare a acestora.

PROM - programate individual de catre utilizator. Informatia odata memorata nu mai poate fi modificata.
Programarea este realizata prin distrugerea selectiva, conform informatiei ce se memoreaza, a unor micro-fuzibile, prin aplicarea
unor tensiuni mai mari, de programare, pe bitii doriti (vezi fig. alaturata).
Dupa programare, la citirea din memorie, mecanisme similare de adresare si selectie a celulelor de mem. RAM, continutul celulei
selectate va fi transmis pe MD a cipului. Informatia va avea valoare logica "0" pentru celulele cu fuzibilul distrus, respectiv "1"
pentru celulele cu fuzibilul intact (in starea initiala, circuitul contine in toate celulele, valoarea "1" - fuzibile intacte).

EPROM - retin informatia ca o sarcina intr-o celula MOSFET, putand fi stearsa, prin expunerea cipului (acesta este prevazut cu o
"fereastra" de cuart, in zona celulelor de memorie), la o sursa de radiatii ultraviolete. Dupa stergere, cipul poate fi reprogramat.
- utilizate cu precadere in etapa de dezvoltare si testare a sistemului sau a unei aplicatii.
Timpul de pastrare a informatiilor in memoriile EPROM este de ordinul anilor,-l zecilor de ani. Operatia de stergere si reprogramare a
acestor circuite poate fi repetata de zeci, chiar sute de ori. Procesul de programare a memoriilor EPROM se face cu ajutorul unui
montaj special, denumit programator de EPROM-uri,.

EEPROM sau memorii flash - circuite reprogramabile; permit modificarea dorita - reprogramarea informatiei (in general selectiva),
prin utilizarea unor semnale electrice.
Modificarile pot fi facute chiar in cursul executiei programului, ceea ce mareste utilitatea acestor circuite (valori ale unor
parametri modificati de catre utilizatorul sistemului, sau parametri de control ai unui proces, determinati in urma unor teste, sau
parametri de stare ai unui sistem, etc)., pot fi salvati in aceste memorii nevolatile; Dupa oprirea alimentarii sistemului -
deconectare, sau avarii - la realimentarea acestuia, valorile salvate pot fi citite din aceste memorii si utilizate la reluarea
programului, utilizand ultimele valori, actualizate, ale acestor parametri)
Memoria interna a sistemului microprocesor - Memoria ROM

Memorii ROM (Read Only Memory) Schema de principiu a unui circuit


PROM (Programable ROM) de memorie PROM (nx4 biti)
EPROM (Erasable PROM)
EEPROM (Electrically EPROM)

+V

1001
D
E
C
O 1011
D
Bitii de I
F
adresa I
C 1001
n
A
T
O
R 1111

__
CS
Circuit tampon
Iesire de date
Memoria interna a sistemului microprocesor - Memoria ROM

8 biti

CS - Chip Select : Doar daca READ activ


uP pe 8
biti care
adreseaza
64k octeti
Memoria interna a sistemului microprocesor - Exemplu

Avand un microprocesor cu 8 linii de date si linii de adresa, sa se


proiecteze memoria sistemului asigurand 60 Ko ROM cu circuite PROM
4kx8 si 4 Ko RAM cu circuite RAM 512x8

A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 R/W Select Spatiu adrese

B0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 CSP0 0H
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1H
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 2H
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 3H
. . .
0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 - 0FFFH

B1 0 0 0 1 X X X X X X X X X X X X 1 CSP1 1000H - 1FFFH


B2 0 0 1 0 X X X X X X X X X X X X 1 CSP2 2000H - 2FFFH
B3 0 0 1 1 X X X X X X X X X X X X 1 CSP3 3000H - 3FFFH
...
B14 1 1 1 0 X X X X X X X X X X X X 1 CSP14 E000H - EFFFH

B15 1 1 1 1 0 0 0 X X X X X X X X X 0 CSR0 F000H - F1FFH


1 1 1 1 0 0 1 X X X X X X X X X 0 CSR1 F200H - F3FFH
1 1 1 1 0 1 0 X X X X X X X X X 0 CSR2 F400H - F5FFH
. . .
1 1 1 1 1 1 1 X X X X X X X X X 0 CSR7 FE00H - FFFFH
uP
Sistem cu microprocesor - Exemplu

Microprocesor:
- 64 k x 8 memorie adresabila: 16 biti adresa, 8 biti date
- 256 x 8 porturi I/O: 8 biti adresa, 8 biti date
- semnale de control: IO/M (1 – I/O; 0 – Memorie); RD (0 – citire); WR (0 – scriere)

Necesar de memorie:
- Program (ROM) – fie 256 x 8 pentru program, 256 x 8 pentru tabela conversie.
Total 512 x 8. Adresa de start: 0
- Date (RAM) – fie 256 x 8. Adresa de start: 200h

Memorie disponibila:
- ROM: cipuri de capacitate 256 x 8
- RAM: cipuri de capacitate 256 x 4

Necesar porturi I/O:


- Convertor A/D:
- start conversie – Output – 1 semnal – OUT 0h
- terminare conversie (EOC) – intrerupere – 1 semnal
- date conversie – input x 8 biti – INPUT 0h
- Convertor D/A – output x 8 biti – Output 1h
Sistem microprocesor - Exemplu

Tabela de decodificare si selectie pentru obtinerea semnalelor de selectie de circuit

A15 A14 ... A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 RD IO/M Select Adrese

BANC0 0 0 ... 0 0 0 x x x x x x x x 0 0 CSP0 0 - 0FFH

BANC1 0 0 ... 0 0 1 x x x x x x x x 0 0 CSP1 100 - 1FFH

BANC2 0 0 ... 0 1 0 x x x x x x x x X 0 CSRAM 200 - 2FFH


BANC 0 CSP0
Ad8-Ad15 Decodifi-
care
pentru BANC 1
CSP1
selectia
memoriei BANC 2 (CSRAM)
8
RD
MEMREADY CS CS CS CS
IO/M
RD 256 x 4 biti 256 x 4 biti 256 x 8 biti 256 x 8 biti
cuart RAM RAM PROM PROM
WR

Ad0¸ Magistrala
16 Ad0¸ 8
Ad0¸ Ad0¸
8
MICRO- Ad7 8 Ad7 8 Ad7 Ad7 de adrese
PROCESOR

4 4 8 8 Magistrala
READY D0 ¸ D3
D4 ¸ D7 D0 ¸ D7 D0 ¸ D7 de date
RESET

CLK 8 8
8 IOREADY
INT INTA 8
PORT1 P1O
Decodificare RD P0I Latch
Ad0¸ Ad7 pentru PORT0 Tampon
"1" WR
selectia PORT1
convertoa-
relor
R
Q D (adresate
ca porturi) P0O CN/A
START
CONV
T WR CA/N
EOC
SF.CONV
Bistabil iesire
intrare analogica
analogica
Sistem microprocesor - Exemplu

Schema de decodificare si selectie pentru obtinerea semnalelor de selectie de circuit:


Se pot utiliza decodificatoare, sau direct scheme logice cu porti clasice (combinationale).
Exemplu:
- Pentru memorie - circuit decodificator – utilizare biti adresa A8 – A15 (vezi tabela de decodificare)
- A8, A9 – selectie pagina de memorie
- A10 – A15 – activare decodificator (enable)
- pe cipurile de memorie, bitii inferiori de adresa (A0 – A7)
- Pentru I/O – porti logice – utilizare biti de adresa A1 – A7 pentru selectie, A0 pentru diferentiere
port 0 sau port 1

RD
A15
BANC0 CSP0
A14 O0 A7 RD
CSP1 P0I
A13 BANC1 A0
Decod O1 A6 PORT0

A12 E BANC2 CSRAM A5 P0O


2 la 4 O2
A11 n.c. A4
B A O3
A10 A3 WR

IO/M A9 A8 A2
P1O
A1 PORT1

IO/M
MEMREADY
IOREADY
Elemente de intrare/iesire ale sistemelor cu microprocesor

Un port reprezinta o colectie de componente ale sistemului la care se pot conecta


echipam. externe (periferice), care pot utiliza diverse semnale, viteze de lucru si
protocoale de comunicatie.
Calea de comunicatie dintre procesor si exterior este reprezentata de MD a sistemului
(utilizand totodata MA si MC).
Circuitele, care implementeaza functia de compatibilizare, care convertesc informatii
diverse, de la o gama foarte larga de echipamente si componente de intrare si iesire, se
numesc module de interfata (sau module de intrare-iesire).
Elemente de intrare/iesire ale sistemelor cu microprocesor
Moduri de interfatare:
Microprocesor
(a) sub controlul
microprocesorului Memorie Periferic
Interfata I/E

Microprocesor Port de intrare/iesire

(b) prin acces direct la memorie


Memorie Interfata DMA Periferic

Moduri de lucru cu elementele de intrare/iesire: Tipul de operatie I/E utilizata intr-o aplicatie
depinde de rata de transmitere a datelor, de
intarzierea maxima cu care uP poate
A. Operatii de intrare/iesire efectuate sub controlul programului prelua/transmite datele din momentul disponibilitatii
B. Operatii de intrare/iesire prin intreruperi echipamentului care le vehiculeaza, de posibilitatea
C. Operatii de intrare/iesire prin acces direct la memorie - DMA executarii, intercalat cu operatiile I/E, a altor
operatii ale unitatii centrale.

Comunicatia intre microprocesor si echipamentele externe are loc in doua etape succesive:
etapa I - are loc transferul intre CPU si interfata,
etapa 2 - are loc comunicatia intre interfata si periferic.
Uzual, primul stadiu se denumeste operatie de intrare-iesire, iar al doilea, operatie de transmisie a informatiilor

Tehnicile de transfer al informatiei prin acces direct la memorie (DMA) - accesul intre interfata si memoria sistemului se face sub
controlul unui circuit specializat, fara controlul programului uP.
Elemente de intrare/iesire ale sistemelor microprocesor

A. Operatii de intrare/iesire efectuate sub controlul programului

cuvinte de date
Cuvintele de control sunt utilizate pentru: date de intrare
- sincronizarea operatiilor portului si ale uP, date de iesire
Echipament
- setarea/testarea unor parametri, operatii
intrare / iesire cuvinte de control Microprocesor
necesare in vederea transmiterii cuvintelor cuvinte de comanda
de date.
cuvinte de stare

Fluxul de informatie intre microprocesor si o interfata de I/E


Citirea cuvintelor de control, denumite in acest caz cuvinte de stare, permite, prin testarea prin program a bitilor cuvantului citit
de la port,
- analizarea starii portului:
- daca are sau nu informatie disponibila,
- daca poate prelua alt cuvant de date,
- daca transferul s-a efectuat corect etc., in functie de posibilitatile si functiile portului)
- luarea de decizii adecvate de catre microprocesor (se vor executa sectiuni din programul sistemului care trateaza situatia
existenta)

Operatii de scriere spre port, cuvintele de control sunt denumite cuvinte de comanda a portului si permit, prin afectarea pentru
fiecare bit al cuvantului, a unei semnificatii unice, programarea portului
- se pot initia operatii / seta parametri (oprirea unui motor, modificarea ratei de transmisie a unor date, stergerea unui indicator de
eroare etc.)
Elemente de intrare/iesire ale sistemelor microprocesor
A. Operatii de intrare/iesire efectuate sub controlul programului

(a) Utilizarea operatiilor specifice de I/E, distincte de cele cu memoria

Periferic
Mag. operatie cu porturi
control operatie cu memoria

Mag.
adrese
Microprocesor Decodificare
selectie Memorie Interfata I/E
memorie

selectie port
Decodificare

Mag. date

La efectuarea operatiilor de intrare/iesire sub controlul programului, se pot utiliza:


(a) instructiuni specifice de I/E.
In acest caz, uP este prevazut cu semnale pe MC, diferite pentru operatiile cu MEM, respectiv cu porturile.
Se conecteaza atat memoria cat si porturile la MA si la MD ale sistemului, dar se utilizeaza semnale de control distincte pentru
cele doua categorii de componente ale sist.
Elemente de intrare/iesire ale sistemelor microprocesor
A. Operatii de intrare/iesire efectuate sub controlul programului

Periferic
scriere date port
Mag. citire date port
(a1) Utilizarea unei singure control scriere comanda port
adrese de port, si a patru citire stare port
semnale de control I/E Micro-

Mag.
OUTCMD, port procesor adrese
selectie port
INSTATUS, port
Decodificare

OUTDAT, port Mag. date


INDAT, port

Periferic

(a2) Utilizarea a doua adrese Mag. citire port


I/E si a doua semnale de control scriere port

control Micro-
Mag.
OUT portctl procesor adrese
selectie port
IN portctl control
Decodificare
OUT portdata selectie port date
IN portdata
Mag. date
Elemente de intrare/iesire ale sistemelor microprocesor
A. Operatii de intrare/iesire efectuate sub controlul programului

Moduri de implementare a acestui tip de operatii I/E:

(a1) cate o instructiune unica pentru fiecare operatie de I/E, utilizand minimum o singura adresa pentru
un port.

In acest caz, exista patru instructiuni tipice:

(1) citire de date (citire cuvant de date);

(2) scriere de date (scriere cuvant de date);

(3) transmitere comanda (scriere cuvant de comanda);

(4) citire stare (citire cuvant de stare).

Acest tip de operatie cu porturile ar necesita un numar de minimum 2 semnale de control, pentru a diferentia,
la o operatie cu acelasi port, sensul si tipul instructiunii executate la un moment dat.
Elemente de intrare/iesire ale sistemelor microprocesor
A. Operatii de intrare/iesire efectuate sub controlul programului

Moduri de implementare a acestui tip de operatii I/E:

(a2) doua instructiuni I/E, una pentru intrare, alta pentru iesire, pentru cuvintele de date, si pentru cele
de control.
Se utilizeaza minimum doua adrese pentru un port, pentru a diferentia operatia ce se efectueaza,
referitor la date sau control.

Cele doua instructiuni tipice, ce se definesc in acest caz, vor fi:


(1) citire informatie (cuvant de data sau de stare);
(2) scriere informatie (cuvant de data sau de comanda).

Pentru acest tip de operatie de I/E, este necesar minimum un semnal de control care sa
diferentieze sensul transferului datelor (citire sau scriere), care corelat cu adresa de la / la care se
face transferul, sa poata defini in mod unic operatia ce se executa.
Metoda este dintre cele mai intalnite tehnici de utilizare a porturilor de I/E.
Elemente de intrare/iesire ale sistemelor microprocesor
A. Operatii de intrare/iesire efectuate sub controlul programului

(b) Nu se folosesc instructiuni separate de I/E: se va adresa portul ca o celula de


memorie

Periferic
Mag.
control citire/scriere

Micro- Mag. selectie Memorie Interfata I/E


adrese
memorie
procesor Decodificare

selectie port
Mag. date

Utilizarea operatiilor de I/E, de tipul "memory mapped I/O"

Metoda "memory mapped I/O" permite utilizarea instructiunilor uzuale de lucru cu memoria, cu avantajele
aferente (mult mai multe instructiuni aferente, moduri de adresare complexe, etc.); pe de alta parte insa,
metoda implica complicatii in ceea ce priveste schemele de adresare si selectie a memoriei si
interfetelor sistemului.
(b) Nu se folosesc instructiuni separate de I/E: se va adresa portul ca o celula de memorie

(b) nu se folosesc instructiuni separate de I/E. Se va adresa portul ca o celula de memorie.


Se configureaza memorie in sistem, mai putina decat capacitatea maxima a acestuia. La adresele
ramase libere se va asigura selectia portului respectiv. (Deci, la aparitia semnalelor de adresa
corespunzatoare si a celor de control, proprii lucrului cu celula de memorie respectiva, se va selecta si
se va vehicula informatie cu portul dorit)1.

Operatiile 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).

In cazul utilizarii porturilor organizate ca "memory mapped I/O", din totalul spatiului de memorie configurabil
pentru uP respectiv se decide combinatia memorie/porturi optima pentru aplicatia respectiva.
Uzual, atat memoria cat si porturile sistemului se organizeaza in zone compacte de adrese (blocuri) (pentru
memorie acest lucru fiind, evident, absolut necesar).

Modalitatile de utilizare in program a cuvantului de control sunt date de o secventa de program, de genul:
(a) se scrie cuvantul de comanda la port, pentru a cere transferul de cuvant de date;
(b) se citeste cuvantul de stare de la port;
(c) se verifica bitii de stare ce indica posibilitatea transferarii datelor;
(d) se reiau pasii b-c, pana ce portul este gata de transfer;
(e) se citeste (scrie) cuvantul de date.
Elemente de intrare/iesire ale sistemelor microprocesor
C. Operatii de intrare/iesire efectuate prin acces direct la memorie - DMA

(c1) Oprirea activitatii procesorului (HALT) la sfarsitul instructiunii curente


(c2) Oprirea microprocesorului în cadrul instructiunii curente, la terminarea subciclului de instructiune curent
(c3) Operatiile microprocesorului si ale DMA sunt multiplexate
Magistrala
Circuit de adrese
tampon

Microprocesor< Memoria
si I / E
halt

Circuit Magistrala
tampon de date

< R/W
> transfer posibil
< cerere D M A
(c1) Oprirea activitatii procesorului (HALT) la sfarsitul instructiunii curente
Interfete I/E – caracteristici generale

• Operatii cu interfete de Intrare-Iesire


– Adresate ca porturi de I/E – instructiuni speciale: IN, OUT
• Separate de memoria sistemului
• Mai usor de evidentiat operarea cu un element I/E fata de operarea cu
memoria – depanare mai usoara
• (Nu pot fi adresate direct in limbaje de nivel inalt (C/C++), ci doar in limbaj
de asamblare)
– Adresate ca memorie (memory Mapped I/O) – instructiuni de adresare
a memoriei
• Ocupa o zona din spatiul de adrese al memoriei sistemului
• Se pot adresa direct ca elemente de memorie (ca variabile ale programului),
utilizand orice mod de adresare posibil
• Depanararea trebuie facuta atent (posibilitate de eroare)
• Variabilele care sunt localizate la adrese de port de I/E trebuie declarate in
limbajul C cu atributul ‘Volatile”, de ex:
volatile short P1IO;
Operatii cu interfetele de I/E

• Scriere catre porturile de I/E (OUTPUT)


– Cuvinte de comanda – setare de parametri de functionare a
interfetei (viteza de lucru, setare / resetare stare unor parametri,
comanda ON/OFF a unor elemente de iesire digitale, etc.)
– Cuvinte de date – trimitere de date catre interfata (de ex.: valori
conversie D/A, setare / resetare biti port iesire digital, etc.)

• Citire de la porturile de I/E ( )


– Cuvinte de stare – citire informatii de functionare a interfetei (viteza
de lucru, stare parametri, citirea starii ON/OFF a unor elemente de
intrare digitale, etc.)
– Cuvinte de date – citire de date de la interfata (de ex.: valori
conversie A/D, stare biti port intrare digital, etc.)
Porturi de I/E digitale

• Fiecarui bit al cuvantului de date al portului ii corespunde un


element exterior de tip inchis / deschis (0/1 sau ON/OFF)
– citeste starea unui element de tip contact - cu doua stari -
contact / buton / tasta
– OUTPUT – seteaza starea unui element de executie de tip binar –
releu, contactor, bec, LED, etc.

Registru Port de Intrare / Iesire (tipic pt. microcontrolere)


Bitn Bitn-1 Bitk Bit1 Bit0
Intrare 0
Iesire 1

Iesire k

Intrare n-1

Iesire n
Porturi de I/E digitale
Registru Port de iesire
Bitn Bitn-1 Bitk Bit1 Bit0
Iesire 0
Iesire 1

Iesire k

Iesire n-1
Iesire n

Registru Port de

Bitn Bitn-1 Bitk Bit1 Bit0


Intrare 0
Intrare 1
Intrare k

Intrare n-1
Intrare n
Identificarea starii unui echipament - INPUT

Identificarea starii echipamentului conectat la un port de intrare se face prin testare, astfel:
- Se izoleaza bitul corespunzator din cuvantul de date citit de la portul de intrare
- Se construieste o constanta numita masca de testare, pentru a izola bitul de identificat. Aceasta va avea
valoarea “1” pe pozitia bitului de testat si “0” in rest
- Se efectueaza operatia logica “SI” (AND) intre cuvantul de date cittit de la port si masca construita.

Cuvant de date citit


de la port de intrare bit_n .…bit_k+1 bit_k bit_k-1 .…bit_0 Data_INPUT
(INPUT):
Operatia logica:
AND
Izolarea bitului k
Masca_bit_k
Mască de testare 0 ………....0 1 0 …….…0
pentru bitul k:
Rezultat Rez_bit_k
0 ………....0 bit_k 0 …….…0

Rez_bit_k = Data_INPUT & Masca_bit_k;


if (Rez_bit_k)
{ // bitul k = 1, se completeaza cod corespunzator
................. }
else
{ // bitul k = 0, se completeaza cod corespunzator
...................}
Setarea starii unuia sau mai multor echipamente - OUTPUT

- Se seteaza bitul/biti corespunzator(i) din cuvantul de date scris carte port, prin punerea valorii “1” pe bitul/bitii
de setat.
- Se construieste o constanta numita masca pentru setarea bitului/bitilor de setat, care va avea valoarea “1”
pe pozitia bitului/bitilor pentru setat, iar restul de biti vor fi “0”
- Se efectueaza operatia logica “SAU” (OR) intre cuvantul de date anterior scris la portul de lucru (pentru a nu
modifica stare altor echipamente conectate la port) si masca.

Cuvant de date scris


anterior la port deiesire bit_n .…bit_k+1 bit_k bit_k-1 .…bit_0 Data_OUTPUTt-1
(OUTPUT):
Operatia logica:
OR
Mască pentru setarea
bitului k: 0 ………....0 1 0 …….…0 Masca_setare_bit_k

Rezultat Rez_OUTPUT_bit_kt
bit_n .…bit_k+1 1 bit_k-1 .…bit_0

Bitul k setat, ceilalti nemodificati

Setarea bitului k:
Masca_bit_k = 0b10000; // valoarea 1 trebuie pozitionata pe
// pozitia k
Data_OUTPUTt-1 |= Masca_setare_bit_k;
// OUTPUT la port Rez_OUPTUT_bit_kt
Resetarea starii unuia sau mai multor echipamente - OUTPUT

- Se reseteaza bitul/biti corespunzator(i) din cuvantul de date scris carte port, prin fortarea pe valoarea “0” a
bitului/bitilor de resetat.
- Se construieste o constanta numita masca pentru resetarea bitului/bitilor de resetat, care va avea valoarea
“0” pe pozitia bitului/bitilor pentru resetat, iar restul de biti vor fi “1”
- Se efectueaza operatia logica “SI” (AND) intre cuvantul de date anterior scris la portul de lucru si masca. Astfel,
nu se modifica starea altor echipamente conectate la portul respective.
Cuvant de date scris
anterior la port de iesire bit_n .…bit_k+1 bit_k bit_k-1 .…bit_0 Data_OUTPUTt-1
(OUTPUT):
Operatia logica:
AND
Mască pentru resetarea
bitului k: 1 ………....1 0 1 …….…1 Masca_resetare_bit_k

Rezultat bit_n .…bit_k+1 0 bit_k-1 .…bit_0 Rez_OUTPUT_bit_kt


Bitul k resetat, ceilalti nemodificati Resetare echipament k

Resetare bit k:
Masca_resetare_bit_k = 0b1111111110111111; // valoarea 0 trebuie pozitionata pe
// pozitia k
Data_OUTPUT &= Masca_resetare_bit_k;
// OUTPUT la port Rez_OUPTUT_bit_k
Utilizare porturi digitale de I/E

– Porturi de intrare (INPUT)


• Citire informatie stare port / interfata
• Citire contacte:
– Butoane de comanda
– Limitatoare de cursa
– Termocuple
– Senzori inchis/ deschis
– etc.

– Porturi de iesire (OUTPUT)


• Scriere / comanda catre port / interfata
• Comanda elemente iesire:
» Motor (ON / OFF)
» Bec
» Releu
» Contactor
– etc.
Ex. : Schema porturi de I/E digitale
Port intrare; citire in registrul uP Port iesire; inscriere pe bitii de
Circuit tampon
(bitii D0 - D15) comanda CMD0¸CMD15 Circuit Latch

Circuite de tip 8286 pentru portul de intrare (circuite tampon izoland semnalele de Circuite de tip 8282 pentru portul de iesire, pentru memorarea unor comenzi date
intrare de magistrala de date a sistemului). Sensul transferului de date prin aceste de microprocesor spre exterior. Iesirile acestor circuite sunt in permanenta activate
circuite fiind de la intrarile A catre iesirile B, pinul de control al sensului transferului (pinul OE este conectat la masa), iar impulsul de memorare a datelor de pe
de date, T, este conectat permanent la nivel logic “1”. Activarea circuitelor tampon se magistrala de date este sintetizat pe baza semnalului de selectie a portului P2
face prin pinul OE, (adresa 310h), utilizat ca port de iesire — impreuna cu semnalul WR .
Schema de interfata pentru afisaj electronic
Circuit Latch

Magistrala date uP

Se pot utiliza semnalele P3, WR si bitul de adresa A2, respectiv negatul, sau A2 . Cele doua porturi sunt implementate
utilizand cate doua circuite de tip latch 8282. Semnalele de selectie a porturilor sunt aplicate pe pinii STB de inscriere a
informatiei de pe magistrala de date a sistemului microprocesor in aceste circuite. La iesirea circuitelor 8282 se
conecteaza cate un element de afisaj cu segmente de tip LED. Valoarea logica “1” pe o iesire a circuitelor 8282 implica
segment stins, iar valoarea logica “0” implica segment aprins.
Convertoare A/D – caracteristici generale

• Convertoare A/D, A/N: componente externe sau incluse pe cipul


microprocesor (microcontroler), permitand masurarea de marimi
analogice (uzual tensiuni in gama 0-V alimentare).

• Structura: Circuit integrat sau bloc distinct in CPU.


Contine blocuri specifice pentru lansare conversie, pentru citirea starii conversiei si a datelor
convertite.
Combinat uneori si cu multiplexor si circuit esantionare si retinere (Sample&Hold)

• Cifre de merit:
– Rezolutia - numar de biti
– Precizia – valoarea analogica corespunzatoare unui bit
– Viteza de conversie – durata conversiei

• Utilizare:
– Lansare conversie prin program, sau automat (alt periferic – timer, etc.)
– Testare stare conversie prin sau Generare de la
terminarea conversiei
– Conversie unica sau multiple
– Conversie de pe un singur canal, sau de pe mai multe
Schema de baza utilizare convertor A/D in sistem microprocesor

IOREADY RD
Bitii superiori
de adresa, IO Schema de
Sel Port IN k Utilizare in program:
Sel Port k - OUTPUT la port k – start conversie
decodificare Magistrala - INPUT de la port k
date – citeste stare conversie – bit7:
D0 daca bit 7 = 0, conversia gata, altfel nu
Start Bit 0
WR – citeste date conversie (bitii 0 – 6),
Conversie
D1
Bit 1
Limbaj C
D2
Bit 2

Intrare D3
analogica Convertor Bit 3
A/D de
7 biti
D4 P
Bit 4

D5 Limbaj de asamblare
MOV DX, port_K ; DX=adresa port k
Bit 5
MOV (DX), AL; start conversie
LP1: MOV AL,(DX) ; AL=data citita
D6 ; de la port K
Bit 6 MOV BL, AL ; memorare data citita
AND AL, 0000000b ; izolare bit 7
D7 JNZ LP1; salt daca nu e gata (EOC=1)
; … BL contine data convertita
EOC
Ex. - Interfata CAD Start conversiei A/D

Pinul AnCom al convertorului se va conecta la


Indicator de
masa partii analogice de masura a schemei. Bitii de date de
Pinul DigCom se conecteaza la masa partii
stare a
conversiei A/D iesire ai Circuit
digitale a schemei. convertorului A/D
tampon
Pinul B&C trebuie utilizat pentru a genera
inceperea unei noi conversii (Start conversie), la
aparitia unui puls pozitiv pe acest pin. Acest puls
va fi generat, in schema propusa, la efectuarea
unei operatii de output la portul P1 al sistemului.

Semnalul de selectie a portului, P1, impreuna cu


semnalul de scriere, WR, genereaza semnalul
ITGWR aplicat pe pinul B&C al convertorului A/D.
Bitii de date de iesire ai convertorului (BIT1 la
BIT10) vor fi conectati la intrarile unor circuite
tampon de tip 8286 prin care vor putea fi preluate,
Magistrala
la o operatie de citire de la portul P1 pe MD, si de date
transferate in microprocesor.

Portul este configurat ca un port de 16 biti, la o


citire transferandu-se informatie pe toti cei 16 biti
ai MD a sistemului.
Utilizarea bitului D15 de date ca bit indicator de
stare a conversiei, prin conectarea acestui bit la
iesirea DATA_READY a convertorului A/D. Pe
pinul T la nivel 1 logic
durata unei conversii A/D, acest semnal are
transferare a datelor A ->B
valoare logica 1, iar dupa incheierea conversiei,
valoarea logica 0.

Prin program, utilizatorul va putea efectua operatii de citire de la portul P1 si, prin testarea bitului D15 de date, va putea determina starea
conversiei A/D. Ceilalti biti de date (D10¸D14) nu sunt utilizati si ar putea, in principiu, sa fie folositi ca biti de intrare de uz general.
Circuitele 8286 au selectat doar sensul de transferare a datelor de la pinii A catre pinii B, prin conectarea pinului T la nivel 1 logic (la +5 V).
Activarea circuitelor tampon este facuta la aparitia semnalului de selectie P1, simultan cu semnalul de citire, RD (generand semnalul ITGRD
aplicat intrarilor OE ale circuitelor 8286).
Convertoare D/A – caracteristici generale

• Convertoare D/A: componente uzual incluse pe cipul microprocesor


(microcontroler), permitand generarea de marimi analogice (uzual tensiuni
in gama 0-V alimentare).

• Structura: Bloc distinct in CPU.


Contine registre specifice pentru programare si pentru setarea datelor de
convertit.

• Cifre de merit:
– Rezolutia - numar de biti
– Precizia – valoarea analogica corespunzatoare unui bit
– Viteza de conversie – durata conversiei

• Utilizare:
– Inscriere data de convertit in registrul de date lanseaza conversia
– Nu necesita asteptare terminare conversie
Schema de baza utilizare convertor D/A in sistemul cu microprocesor

WR
IOREADY Utilizare in program:
Bitii superiori
de adresa, IO Sel Port OUT k - OUTPUT la port k – data de convertit
Schema de Sel Port k
decodificare Limbaj C
D0
Selectie Out0
Di0

D1
Di1 Out1

D2
Out2
Di2
Magistrala date

D3 Registru Convertor Iesire


Out3
P
Di3
analogica
(latch) D/A de
D4
Di4 Out4
8 biti 8 biti
D5
Di5 Out5

Limbaj de asamblare
D6 MOV DX, port_K; DX=adresa port k
Di6 Out6
MOV AL, val_conv
MOV (DX), AL; val_conv la D/A
D7 …
Di7 Out7
Exemplu
BANC 0 CSP0
Ad8-Ad15 Decodifi-
care
pentru BANC 1
CSP1
selectia
memoriei BANC 2 (CSRAM)
8
RD
MEMREADY CS CS CS CS
IO/M
RD 256 x 4 biti 256 x 4 biti 256 x 8 biti 256 x 8 biti
cuart WR RAM RAM PROM PROM

Ad0¸ Magistrala
16 Ad0¸ 8
Ad0¸ Ad0¸
8
MICRO- Ad7 8 Ad7 8 Ad7 Ad7 de adrese
PROCESOR

4 4 8 8 Magistrala
READY D0 ¸ D3
D4 ¸ D7 D0 ¸ D7 D0 ¸ D7 de date
RESET

CLK 8 8
8 IOREADY
INT INTA 8
PORT1 P1O
Decodificare RD P0I Latch
Ad0¸ Ad7 pentru PORT0 Tampon
"1" WR
selectia PORT1
convertoa-
relor
R
Q D (adresate
ca porturi) P0O CN/A
START
CONV
T WR CA/N
EOC
SF.CONV
Bistabil iesire
intrare analogica
analogica
Recall: the computer system
The computer system (not the same as a (whole) computer)
- The Central Processing Unit executes (computer) instructions
- The memory (RAM) store data and computer instructions

The memory is a huge storage Instructions of computer programs


component that stores: Variables (= data) used in the computer programs

The CPU can retrieve (= read) the next instruction from memory (to execute it):
The CPU can retrieve (= read) and store (= write) data from/to the computer memory

The CPU can read the next computer instruction from the memory:

After the CPU obtain the instruction, the CPU will execute the instruction
The CPU perform arithmetic and logical operation,

The CPU can fetch the next (calculator) instructions in a program from the memory and execute
the (fetched) instruction
The data is used as an operand for the current instruction that is executed by the CPU
The execution of an instruction (such as addition) may require the CPU to fetch operands
(= data) from the memory

The CPU can store (= write) result of computations to the memory:

When the CPU performs a computation, the result of the completed computation may need
to be stored the result in memory for safe-keeping
The CPU contains:
A number of general purpose registers
A register can store 8, 16, or 32 bits values
General purpose means that the register can be used for multiple (different) purposes
Program flow - computer program and computer instruction

A computer program consists of computer instructions and is stored in memory:


When the computer program is run (= executed), then:
The CPU fetches the (computer) instructions in the program -- one instruction at a time, starting at address 0 - and
execute the (fetched) instruction
When the CPU finishes executing an instruction, the CPU will fetch the next instruction and execute it

The current instruction


Current instruction = the instruction (in memory) that the CPU is currently executing

The next instruction


Next instruction = the instruction (in memory) that the CPU will execute after it finishes executing the current instruction
Special purpose registers
The special purpose registers allows the CPU to perform its designed function which is:

Fetch the next instruction according to the program control flow from memory into the CPU
Execute the (fetched) instruction

Usage of the Instruction Register (IR)

The Instruction Register contains the instruction that is currently being executed by the CPU:

The IR register contains the of the current instruction that the CPU is executing

The circuitry inside the CPU will emit control signals to various parts of the CPU to instruct the components (such as registers,
ALU, etc) to cooperate to achieve the result (= action) encoded by the current instruction
Usage of the Program Counter (PC)

The Program Counter (register) contains the address (= location) of the next instruction that
the processor will fetch and execute (after the processor finish executing the instruction in the Instruction Register)
Usage of the Processor Status Register (PSR)

The Processor Status Register (as the name says) contains the status of the processor:
When the processor executes an instruction, the status of the execution may be recorded in the PSR

The PSR register can contains a (large) number bits (typically 32)
The value of each bit represents a certain execution condition
Example:
where we use assembler programming to understand constructs in High Level Programming
Languages), we only use the following computation status "flags" (= bits) in the PSR register:

N = 1 when the execution of the previous instruction resulted in a negative value (i.e., the left-most bit = 1, N = 0
otherwise.
Z = 1 when the execution of the previous instruction resulted in the value zero (= 0) (i.e., all bits are equal to 0, Z = 0
otherwise.
C = 1 when the execution of the previous instruction produced a carry in the 33th bit position, C = 0 otherwise.
V = 1 when the execution of the previous instruction produced a value that cannot be represented with 32 bits (i.e.: value is
too large, or overflow), V = 0 otherwise.
The voltage signals carried through the wires of the address bus
represents the binary number of the address of the memory that the
CPU wants to access (= Read or Write)
The voltage signals carried through the wires of the data bus represents
the binary Data transferred between the CPU and the memory
The voltage signals carried through the wires of the control bus contains
command indications made by the CPU
The address bus (= wires) is used to send the address (location) information to memory
Example: when the CPU want to read data stored in memory location (address) 4, the CPU sends the value 4 (in binary ) on the
address bus
Each memory byte is identified by a unique memory address

§ A address bus that consists of 8 wires (= bits), can convey 28 (= 256) different addresses
A address bus that consists of 16 wires (= bits), can convey 216 (= 64K) different addresses

Ex. The Apple II PC has a 16 bit address bus and has maximum 64 K byte RAM memory

§ A address bus that consists of 24 wires (= bits), can convey 224 (= 16M) different addresses
A address bus that consists of 32 wires (= bits), can convey 232 (= 4G) different addresses
Ex. If your PC has 8 G byte memory, then your PC has an address bus that contain at least 33 wires (bits)
because 233 = 8,589,934,592 (~= 8 × 109 = 8 G byte)

PCs has at least 33 bits address buses and can use 8 G byte memory. Some (high end) PCs has more than 34 or 35 bits address bus and
can use maximum 16 or 32 GBytes memory
Microprocesor / Microcontroler
Block Diagram of the AVR Architecture

Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA_328_328P_datasheet_Complete.pdf
ATMega32 Architecture
• Native data size is 8 bits (1
byte).
• Uses 16-bit data addressing
allowing it to address 2 1 6 =
65536 unique addresses.
• Has three separate on-chip
memories
• 2KB SRAM
• 8 bits wide used to
store data
• 1KB EEPROM
• 8 bits wide used
for persistent data
storage
• 32KB Flash
• 16 bits wide used
to store program
code
• I/O ports A-D
• Digital input/output
• Analog input
• Serial/Parallel
• Pulse accumulator
ATMega32 Programmer Model: Memory
1. 2KB SRAM
– For temporary data storage
– Memory is lost when power is
shut off (volatile)
– Fast read and write

2. 1KB EEPROM
– For persistent data storage
– Memory contents are retained
when power is off (non-volatile)
– Fast read; slow write
– Can write individual bytes

3. 32KB Flash Program Memory


– Used to store program code
– Memory contents retained when
power is off (non-volatile)
– Fast to read; slow to write
– Can only write entire “blocks” of
memory at a time
– organized in 16-bit words
(16KWords)
20112012-I
ATMega32 Programmer Model: Memory

• AV R m i c r o c o n t r o l l e r s a r e H a r v a r d
a r c h i t ec t ur e . T h is m e an s , t h a t in t hi s
architecture are separate memory types
(program memory and data memory)
connected with distinct buses. Such

This increases performance of


MCU comparing to CISC architecture, where
CPU uses same bus for accessing program
memory and data memory.

• Each memory type has its own address


space:

Type Flash RAM EEPROM


F_END Size, kB RAMEND Size, kB E_END Size, kB
Atmega8 $0FFF 8 $045F 1 $1FF 0.5
Atmega32 $3FFF 32 $085F 2 $3FF 1
Atmega64 $7FFF 64 $10FF 4 $7FF 2
Atmega128 $FFFF 128 $10FF 4 $FFF 4
ATMega32 Programmer Model:
Data Memory
EEPROM
• ATmega32 contains of data EEPROM memory.
• It is organized as a separate data space, in which single bytes can be
and .
• The EEPROM has an endurance of at least

• Different chip have different size of EEPROM memory

Chip Bytes Chip Bytes Chip Bytes

ATmega8 512 ATmega16 512 ATmega32 1024


ATmega64 2048 ATmega128 4096 ATmega256RZ 4096

ATmega640 4096 ATmega1280 4096 ATmega2560 4096


ATMega32 Programmer Model:
Data Memory
The data memory is composed of three parts:

• GPRs (general
purpose registers),

• Special Function
Registers (SFRs), and

• Internal data SRAM.


ATMega32 Programmer Model:
Registers (PC)

Program counter (PC, 16-bit)

Ø Holds address of next program instruction to


be executed

Ø Automatically incremented when the ALU


executes an instruction
ATMega32 Programmer Model: Registers (SR)
Interrupt Negative
SREG: I T H S V N Z C
Carry
OVerflow Zero
Temporary
Sign
Half carry N+V

R0
ALU R1
R2

SREG: I T H S V N Z C

CPU
R15
R16
R17
PC

R30
Instruction decoder
R31
Instruction Register
registers
Microcontroler ATmega-328

• microcontroler (MCU) de tip RISC (Reduced Instruction Set) pe 8 biți.


ATMega32 Pin out & Descriptions

Port B
Port A
Clears all the registers and restart the
execution of program

Provides supply voltage to the chip Reference voltage for ADC


. It should be connected to +5

Supply voltage for ADC and


These pins are used to connect portA. Connect it to VCC
external crystal or RC oscillator

Port C
Port D
ATMega32 Pin out & Descriptions
ATMega32 Pin out & Descriptions
ATMega32 Pin out & Descriptions
Defining a pin as either Input or Output – The DDRx Registers

LDI R20,0xFF ;R20 = 0b01110101 (binary)


OUT PORTx,R20 ;PORTA = R20
OUT DDRx,R20 ;DDRA = R20

DDRx = 0b01110101; /* Configuring I/O pins of port */


ATMega32 Pin out & Descriptions
Case 1 : To make a pin go high or low ( if it is an output pin)- Data Register PORTx
ATMega32 Pin out & Descriptions
Pull-up resistors are used in electronic logic circuits to ensure
that inputs to logic systems settle at expected logic levels if
external devices are disconnected or high-impedance
ATMega32 Pin out & Descriptions
Case 2 : To activate / Deactivate pull up resistors-Data Register PORTx
ATMega32 Pin out & Descriptions
The PINx register gets the reading from the input pins of the MCU
SW

Prezentare IDE
MPLAB X IDE

la instalare
MPLAB X IDE
MPLAB X IDE
Depanare in MPLAB X
Depanare in MPLAB X
Depanare in MPLAB X
MPLAB X
Depanare in MPLAB X
Realizare proiect in MPLAB X
pas 1
Realizare proiect in MPLAB X
pasi intermediari
Realizare proiect in MPLAB X
pasi finali
Rulare aplicatie pe simulator
MPLAB X Simulator SimulIDE
Exemplu - aplicatie demonstrativa
folosind MPLAB X IDE si SimulIDE
Problema 1
Se considera un sistem robotic, a carui componenta de procesare este compusa din
subsistemul cu microprocesor. Microprocesorul este pe 16 biti si adreseaza un spatiu de 1 M.
Sa se determine necesarul de memorie știind ca: pentru codul programului este nevoie
de un spațiu de 20436 de octeți, iar pentru calculul unghiuri impuse bratului robotic este
nevoie sa se memoreze o tabela de funcții trigonometrice (de exemplu cosinus), calculata pe
16 biți, pentru argumente de la 0 grade la 359 de grade, cu pasul de 1 minut.
Se cere sa se configureze aceste memorii. Vom folosi circuite de tip RAM de 4K x 4. Sa
se realizeze schema de conectarea memoriilor la sistemul cu microprocesor si tabela de
decodificare (pentru decodificare adresa de unde incepe alocare va fi 0x10000 (numar in
hexa)).
Rezolvare:
 Spatiul necesar alocat pentru memorarea functiilor cosinus
16 biti x 360 0 x 60’/1’= 360 x 2 x 8 biti x 60 =43200 octeti
1 Octet

Recapitulare: 1 grad = 60` (1grad are 60 min, 1 min are 60 sec, 1 grad=60*60=3600sec)
359 0 / 0 0

 Calcul pentru determinarea spatiului de memorie

=> Total spatiu alocat = 43200+ 20436= 63636 octeti ≈ 64k octeti

 Microprocesor (uP) este pe 16 biti, si adreseaza 1M de memorie


=> uP are cuvantul de date pe 16 biti, adica 16 biti pe MD, si adreseaza 1M, adica 1M =
1024 k= 210x210=220 => 20 de pini disponibili pe cip pt conectiunile MA , adica MA este pe
20 de biti.

Probleme RIM 2021


 Cip memorie de capacitate : 4k x 4 biti
64𝑘𝑜𝑐𝑡𝑒𝑡𝑖 64𝑘𝑥8
= = 32𝑐𝑖𝑝𝑢𝑟𝑖
4𝑘𝑥4 4𝑘𝑥4

Prezentarea simplificata a cipurilor de memorie date in problema, de tip 4k x 4

 Tabela de decodificare

Linii de adresa
conectate la
întrările
decodificatorului

Probleme RIM 2021


 Schema simplificata de conectare a cipurilor de memorie la magistralele sistemului cu
microprocesor

Problema 2
Se considera in cadrul sistemului ca este nevoie sa se măsoare date de intrare analogice
folosind traductoare de precizie de 10 mV, pe o scara de măsură [-10,...,10] V, pe un canal.
Ce fel de convertor trebuie sa fie integrat in sistem și pe câți biți este acesta ?

Rezolvare:
10− −10 𝑉
gama de masura/ precizie => = 2000𝑣𝑎𝑙𝑜𝑟𝑖
10𝑚𝑉

2n-1≥2000 => n=11 biți => convertorul analog-digital CAD pe 11 biți

Problema 3
Se măsoară date analogice de la un convertor analogic digital (CAD) pe 10 biți, pe o
scara de măsură (interval de intrare) de [-10,..,10]V, pe un canal.
Cat este precizia acestui convertor?

Rezolvare:
𝛥𝑉 𝑉 10− −10 20 𝑉
Precizia= 2𝑛 −1
= 210 −1
= ≅ 20𝑚𝑉
1023

Probleme RIM 2021

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