Documente Academic
Documente Profesional
Documente Cultură
RIM
Conf.Dr.Ing. S.Paturca
EVALUARE
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
Conf.Dr.Ing. S.Paturca
Prezent - viitor
Conf.Dr.Ing. S.Paturca
Roboti in chirurgie
Conf.Dr.Ing. S.Paturca
Roboţi pentru laboratoare
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.
Conf.Dr.Ing. S.Paturca
Roboţi medicali în domeniul stomatologic
Conf.Dr.Ing. S.Paturca
I.1.4 Roboti in psihoterapie
Conf.Dr.Ing. S.Paturca
I.1.5 Roboti medicali in stadiul de cercetare
Conf.Dr.Ing. S.Paturca
(Pg.1)
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
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.
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
Conf.Dr.Ing. S.Paturca
Conf.Dr.Ing. S.Paturca
Robotii pentru recuperarea pacientului
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ă
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/
Conf.Dr.Ing. S.Paturca
Realitate virtuala si
realitate augmentata
• http://www.gesturetekhealth.com/
Conf.Dr.Ing. S.Paturca
Realitate augmentata
Surgery
Augmented
Pad
Reality
Surgery
using iP
Conf.Dr.Ing. S.Paturca
Curs 1.2
Fig. 2.b. Exemplu de arhitectura generală pentru sistemul de procesare si flux de informatii
Control
centralizat
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
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
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.
B7 B6 B5 B4 B3 B2 B1 B0
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)
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
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
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)
• Overflow / borrow
• Inmultirea – separat module, semne
Exemple - Aritmetica numerelor fractionare
• eroare de trunchiere
• eroare de rotunjire
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 11 1
1 1 1 00 0
10 0 0 1 1
Teoreme cu o singura variabila
Logica booleana
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
470
1 0 1
0 1 1
0 0 1
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
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
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
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)
latimea minima a
semnalului de ceas
1
Clk 0 tw
1
D 0 t su th
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.
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)
READ Reg.A
Clk
B7 B6 B0
D D D
WRITE 7B 6B 0B
Reg.B
Clk
date intrare
Transfer
Schema bloc
D P
J7 J6 J0
K6 Q
K7 K0
Clk
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
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
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
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
Figura prezinta un asemenea multiplexor cu patru intrari (D0, D1, D2 si D3), si iesirea f (si negata sa)
Demultiplexoare
- indeplinesc functia opusa multiplexorului.
- poate fi utilizat la convertirea unui sir de semnale numerice transmise serial,
intr-o forma paralela.
Fig. Demultiplexor 1 la 4
Decodificatoare
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
O0
O1
O2
O7
¸
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
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......)
IP
FLAGS
IP IP
EFLAGS FLAGS
Arhitectura uP 8086
Organizarea memoriei in cazul uP 8086
Software-ul sistemului microprocesor-aspecte generale
MSB LSB
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:
Codificare: programare
Testare: verificare (revenire si modificare)
Elaborarea documentatiei
Memoria interna a sistemului microprocesor - Memoria RAM
selectie
coloana
0 1 2 3 31
Decodificator pentru adresa coloana
9876543210
Selectie
Adresa
LATCH ADRESA RIND
Coloana
( CAS )
LATCH
ADRESA
Selectie
COLOANA Adresa
Rind
( RAS )
CONTROL
RIND/COLOANA
COLOANA
RIND
Circuite scriere
4
3 Circuite
2 citire
WE
CITIRE
CS SCRIERE
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
+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
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
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
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
RD
A15
BANC0 CSP0
A14 O0 A7 RD
CSP1 P0I
A13 BANC1 A0
Decod O1 A6 PORT0
IO/M A9 A8 A2
P1O
A1 PORT1
IO/M
MEMREADY
IOREADY
Elemente de intrare/iesire ale sistemelor cu microprocesor
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
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
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
Periferic
Mag. operatie cu porturi
control operatie cu memoria
Mag.
adrese
Microprocesor Decodificare
selectie Memorie Interfata I/E
memorie
selectie port
Decodificare
Mag. date
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
Periferic
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
(a1) cate o instructiune unica pentru fiecare operatie de I/E, utilizand minimum o singura adresa pentru
un port.
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
(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.
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
Periferic
Mag.
control citire/scriere
selectie port
Mag. date
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
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
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
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
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.
- 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.
Rezultat Rez_OUTPUT_bit_kt
bit_n .…bit_k+1 1 bit_k-1 .…bit_0
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
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
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
• 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
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
• 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
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 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
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
Fetch the next instruction according to the program control flow from memory into the CPU
Execute the (fetched) instruction
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
• 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
• GPRs (general
purpose registers),
• Special Function
Registers (SFRs), and
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
Port B
Port A
Clears all the registers and restart the
execution of program
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
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
=> Total spatiu alocat = 43200+ 20436= 63636 octeti ≈ 64k octeti
Tabela de decodificare
Linii de adresa
conectate la
întrările
decodificatorului
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𝑚𝑉
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