Documente Academic
Documente Profesional
Documente Cultură
SISTEMELOR DE CALCUL
Curs 1
Cuprins
Ø Introducere
Ø Evoluţia sistemelor de calcul
Ø Elemente introductive despre logica
booleana
§ Activitati de lucru la seminar si laborator = 10
puncte + colocviu laborator =10 puncte
§ Teme de casa:
§ Tema 1 - aplicatii folosind TinkerCAD - rezolvare si prezentare referat saptamanal (predare
pana in sapt. 12)= 10 puncte
§ Tema 2 - referat - 10 puncte, prezentarea referatului 10 puncte, (se preda in sapt. 6-7) -
maxim 4 studenti /echipa
§ anul 1872
§ E. Barbour realizeaza prima masina de calcul cu imprimanta.
§ anul 1892
§ W. Burroughs construieste o masina de calcul de birou perfectionata.
§ anul 1912
§ F. Baldwin si J. Monroe incep productia de masa a masinilor mecanice de calcul, cu
operatii aritmetice.
Calculatorul ENIAC
Calculatoare realizate cu tuburi electronice:
§ După anul 1960 au apărut limbajele Algol (ALGOrithmic Language) şi Cobol (COmmon
Business-Oriented Language - limbaj orientat spre aplicaţiile de afaceri).
§ Performanţa (în Nov. 2012): 17,59 PFLOPS § Nodurile de calcul sunt amplasate în 200
§ În configuraţia finală, performanţa va fi de peste de dulapuri
20 PFLOPS § Nr. total de nuclee Opteron: 299.008
§ Numărul nodurilor de calcul: 18.688 § Memorie totală: 710.144 GB
§ Nod de calcul: § Interconexiune: Gemini, 100 Gbiţi/s
§ Un procesor AMD Opteron 6274 (2,2 GHz, § Sistem de fişiere: Spider, 240 GB/s,
16 nuclee) capacitate de peste 10 PB
§ Un accelerator grafic (GPU) NVIDIA Kepler § Sistem de operare: Cray Linux
K20 Environment
§ Memorie: DDR3, 32 GB + 6 GB § Consum de putere: 8,2 MW
Arhitectura unui sistem de calcul defineşte:
CE trebuie să facă maşina din punct de vedere logic
ISA (Instruction Set Architecture) Arhitectura Setului de Instrucţiuni
CUM se implementează ISA, implementare fizică
MO (Machine Organization) Organizarea Maşinii
Aplicaţii
(ex. Netscape, Matlab, Word)
Sisteme de operare
(ex. Windows, Unix..)
Compilatoare
Asambloare
Proiectare digitală
Proiectarea circuitelor
Tranzistoare, Layout-ul IC
§ Componenta hardware - totalitatea resurselor fizice de care dispune
calculatorul :
§ Unitatea Centrală de Procesare (Central Processing Unit – CPU), este componenta care controlează
modalitatea de funcţionare a calculatorului şi execută şi operaţiile de procesare a datelor;
µPUG, coprocesoare aritmetice, procesoare digitale de semnal, CISC(Complex Instruction Set Computer ),
RISC (Reduced Instruction Set Computer)
§ Memorii - formatul memoriei, conţinut / adresă, harta memoriei, “pagini“, "segmente“, memorie de
date, memorie de program.
§ Dispozitivele Periferice - necesare pentru asigurarea interacţiunii calculatorului cu mediul extern
(introducere de date/oferirea rezultatelor) Porturi de intrare/ieşire (I/O);
§ Magistrale de conexiune între componente – magistrala de sistem este mecanismul ce oferă
modalitatea de comunicare între componentele sistemului. Magistrală – date, adrese, control
Compilare
Limbaj de asamblare
Asamblare
Cod maşină
Interpretarea codurilor
Desfăşurarea de acţiuni
specifice
Cap. 4. Concepte de
logica digitala
Simboluri
Operatorul NOT in algebra booleana se poate
reprezenta prin simbolul:
Operatorul binar AND in algebra booleana - efect produsul logic (multiplicare) intre A “si” B; se
poate reprezenta: AB, A*B
A
B F=ABC
C
A A
B F=AB
B Fig.2 Exemplu efect poarta AND, cu
diagrama temporala ce ilustreaza
relatia intre intrare si iesire
F
Operatorul binar OR – suma logica intre A “sau” B se poate
reprezenta: A+B
A A A
B f=AB B f=A+B B f=A + B
AND OR XOR
A A A
B
f=AB
B
f=A+B f=A . B
B
NAND NOR Ex-NOR
Intrari Intermediar Iesiri
B A A.B A+B Q
0 0 0 1 1
0 1 0 0 0
1 0 0 0 0
1 1 1 0 1
Intrari Iesiri
A B C D Q
0 0 1 0 0
0 1 1 1 1
1 0 1 1 1
1 1 0 0 1
Intrari Intermediar Iesiri
C B A A.B.C B C B+C A.(B+C) Q
0 0 0 0 1 1 1 0 0
0 0 1 0 1 1 1 1 1
0 1 0 0 0 1 1 0 0
0 1 1 0 0 1 1 1 1
1 0 0 0 1 0 1 0 0
1 0 1 0 1 0 1 1 1
1 1 0 0 0 0 0 0 0
1 1 1 1 0 0 0 0 1
§ Implementarea unei functii booleene folosind porti logice
§ Solutie posibila
ARHITECTURA
SISTEMELOR DE CALCUL
Curs 2
si aplicatii
Cuprins
Aplicaţii
(ex. Netscape, Matlab, Word)
Sisteme de operare
(ex. Unix, Windows)
Compilatoare
Asambloare
Elemente influenţate de
arhitectura setului de
instrucţiuni
Procesor Memorie Dispozitive I/O
Proiectare digitală
Proiectarea circuitelor
Tranzistoare, Layout-ul IC
Cap. 2. Reprezentarea
informatiilor
numerice
§ Sisteme de numeratie:
§ set de simboluri
§ set de reguli de reprezentare
§ baza = numarul de simboluri folosite
§ sisteme ponderale/neponderale
Ø U n s i s te m d e n u m e ra ţ i e e s t e c o n s t i t u i t d i n
ansamblul regulilor de reprezentare a numerelor
folosind cifre.
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
7 6 5 4 3 2 1 0
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
( 100 011 010 111 )2 ( 4 3 2 7 )8
( 6 1 3 4 )8 ( 110 001 010 100 )2
Ø Un număr poate fi scris din baza 10 în binar descompunând prin împărţiri repetate
la doi numărul zecimal şi scriindu-l după puterile lui 2.
Ø Exemplu:
77 = 64 + 8 + 4 + 1 = 26 + 23 +22 + 1 = 1*26 + 0*25 + 0*24 + 1*23 + 1*22 + 0*21 + 1*20
Deci, 77 se scrie în binar 100 1101.
Exemple:
Ø Conversia numarului 23,25 din zecimal in 23 | 2
binar 23,2510 = 10111,012 22 | 11 | 2
1 10 | 5 |2
1 4 |2 |2
Ø Conversia numarului zecimal 933,25 in 1 2 |1 | 2
hexazecimal 0 0
933,2510 = 3A5,416
1
933 | 16
928 | 58 | 16
5 48 | 3 | 16 0,25 x 2 0 , 5
10 |0
0,5 x 2 1, 0
3 0,25 x 16 4 , 0
Conversii
0 0 1 0 1 0 1 1 1 0 1 0 1 1 0 0
2 B A C
Conversie Hexadecimal -> Zecimal
conversie baza 16->10
Conversie Octal – Zecimal
~ 11592.24
Conversie octal – in – zecimal § Conversie Octal – in – Binary
egal cu
Fixare cunostinte
§ Ex.1:Se consideră numărul 1915.40625; se cere conversia acestuia în binar.
§ partea întreagă (N1) se reprezintă în binar cu ajutorul împărţirii repetate la baza (2), reţinând în mod sistematic
resturile obţinute. Numărul în binar reprezintă concatenarea resturilor parţiale generale, în ordinea inversă
obţinerii lor (Condiţia de terminare a algoritmului este obţinerea unui deîmpărţit parţial mai mic decât
baza 2).
§ conversia lui N2 se obţine prin înmulţirea repetată cu baza (2), reţinând în mod sistematic partea întreagă a
rezultatelor parţiale obţinute, în ordinea obţinerii acestora (Condiţia de terminare a algoritmului este
obţinerea unui rezultat fără parte întreagă (sau un număr suficient de iteraţii)).
Fixare cunostinte
q virgula mobile
Virgula (punctul zecimal sau binar, în notaţia engleza) nu se reprezintă fizic în
registrele calculatorului, dar poziţia sa este cunoscută (stabilită) pentru
fiecare dintre modurile de reprezentare
n Nu toate sist. de calc. conţin suportul hardware necesar pentru aritmetica în virgulă
mobilă,
Procesoarele în virgulă fixă sunt ieftine şi au consum mai redus decât cele în virgulă mobilă.
q Este fix atât numărul de poziţii ale părţii întregi cât şi numărul
de poziţii ale părţii fracţionare
(a) (b)
bitul de semn – S
partea întreagă – I
partea fracţionară, formată din Q biţi
n Notaţia utilizata în mod curent pentru reprezentarea în virgulă fixă în
reprezentarea unui număr semn
Qi.q,
unde:
Exemplificarea reprezentării unui format care include atât parte întreagă cât şi
fracţionară, Q3.12, pentru numerele cu semn
Aplicatii
a nr . 16 biti b nr . 16 biti
*
32 biti
1
16
rezultat
nr. 16 biti
Probleme specifice programării în virgulă fixă şi soluţii
32768 32767
>> 1/32767-1
0 0
ans =
-0.999969481490524
() ( ) () ( )
16384 16384 0 .5 0 .5
32768 32767 1 1
n Numere negative:
q mai multe metode de reprezentare (codificare):
n Modulul numărului are aceeaşi reprezentare atât pentru numere pozitive cât
şi pentru cele negative,
n Marime si semn:
q exemplu: -7 1000.0111
Numere întregi cu semn, reprezentate pe n biţi
n b0 - bitul de semn,
n b-1 - bitul cel mai semnificativ (MSB, cu ponderea 21 ),
n b-(n-1) - bitul cel mai puţin semnificativ (LSB, cu ponderea 2 ( n 1)).
n S-a considerat “virgula” între bitul de semn şi MSB
Domeniul de reprezentare al MS (cod mărime şi semn)
n Domeniul de reprezentare:
q algoritmiilor de calcul
n Mod de reprezentare:
q Pentru numere pozitive reprezentarea este identică cu cea făcută
în MS.
-22=1110.1001 C1+
1110.1010 C2
Calculul complementului fata de doi, pentru un anumit numar X, reprezentat pe n biti, va fi:
Astfel, prin reprezentarea complementului fata de doi al unui numar, se obtine reprezentarea binara a
opusului acestui numar (deci [X]2 = - X). De exemplu, fie
X = 6(10) = (0110)2, n=4. Calculand complementul fata de doi al acestui numar, se obtine reprezentarea
Reguli:
Domeniul de reprezentare al C2
Dezavantaj al codului complementar - algoritmii pentru înmulţire şi împărţire mai complecşi decât
cei corespunzători codului MS.
Aplicatii
2’s complement
Aplicatii
Reprezentarea numerelor întregi cu semn pe 16 biţi, în complement faţă de 2
Valoare binară
q 000 001 010 011 100 101 110 111
n MS +0 +1 +2 +3 -0 -1 -2 -3
n C1 +0 +1 +2 +3 -3 -2 -1 -0
n C2 +0 +1 +2 +3 -4 -3 -2 -1
Aplicatii
n semn-mărime
n complement de 1 – C1
n complement de 2 – C2
Aplicatii
n Aşa cum s-a mai specificat, există două reprezentări pentru zero în
format mărime cu semn şi complement fată de 1 şi nici o reprezentare
pentru –1.
n Formatul complement faţă de 2 are o singură reprezentare pentru 0
n Reprezentarea în complement faţă de 2 este adesea utilizată în
implementarea filtrelor digitale datorită uşurinţei efectuării operaţiilor de
adunare şi scădere, caz în care descăzutul se adună cu complementul
faţă de doi al scăzătorului.
Shiftarea numerelor în complement de 1 şi de 2
n Shiftarea la dreapta sau la stânga este folosită pentru a dubla/înjumătăţi mărimea întregilor
binari fără semn.
Figura 1 Shiftarea în
complement de 1.
Figura 2 Shiftarea în
complement de 2.
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)
1 s
xM xB E
s= semn (0 sau 1)
M = semnificant (mantisa),
◦ reprezentată în calculatorul numeric ca un număr binar subunitar cu semn, cu
prima cifră după virgulă diferită de zero;
◦ 0 - 9999999 - forma standardizata
◦ indică mărimea exactă a numărului într-un anumit domeniu
E = exponentul, reprezentat ca un număr întreg cu semn;
◦ indică ordinul de mărime a numărului, fiind puterea la care se ridică baza
mantisei. Exponentul indică deci implicit poziţia virgulei binare.
B = baza, este 2 (rar 10), sau o putere a lui 2,
nu este reprezentată în calculatorul numeric, dar se ţine cont de valoarea bazei atunci
când se efectuează operaţii aritmetice.
La un anumit calculator numeric valoarea bazei este aceeaşi pentru toate
numerele reale reprezentate.
Limite de reprezentare in virgula mobila (flotanta)
n limite de reprezentare:
-∞ +∞
0
-0,999*1099 -0,1*10-99 0,1*10-99 0,999*1099
q dacă numărul de virgulă flotantă este reprezentat în MS, atunci se consideră un număr
normalizat dacă prima cifră binară normală succesivă virgulei este ‘1’ şi nu ‘0’, adică se
elimină zerourile nesemnificative (leading 0's);
q dacă numărul în virgulă flotantă este reprezentat în C2 atunci se spune că este normalizat
dacă bitul de semn şi bitul cel mai semnificativ al mantisei diferă valoric;
q prin normalizare, mantisa obţine valori în câmpul restrâns 1/2 ≤ |M| < 1;
Reprezentarea normalizată are următoarele
avantaje:
n inmulţire: 0⋅ Inf
Normalizarea în binar
n conversia lui N2 se obţine prin înmulţirea repetată cu baza (2), reţinând în mod sistematic partea
întreagă a rezultatelor parţiale obţinute, în ordinea obţinerii acestora (Condiţia de terminare a
algoritmului este obţinerea unui rezultat fără parte întreagă (sau un număr suficient de iteraţii)).
continuare
n Exemple:
q litere mari: A- 41H, B- 42H, C - 43H ...... literele mari sunt cuprinse între 65 (alt 65 pe
tastatura calculatorului va determina afişarea literei A) şi 90 (codul pentru litera Z).
q litere mici: a - 61H, b - 62H, c - 63H, .. literele mici au codurile cuprinse între 95 şi 122
q cifre: 0 - 30H, 1 - 31H, ..... 9 - 39H au codurile între 48 şi 57
1. Medii de lucru
Medii de dezvoltare integrate (IDE)
- MPLABX, Microchip, http://www.microchip.com/mplab/mplab-ide-home
Mediul de dezvoltare integrat (IDE) este necesar realizarii aplicaţiilor software pentru microcontroler (uC). Un IDE are în
componenţă: editorul de text, compilatorul, linker-ul şi debugger-ul.
Conf.dr.ing. S.Paturca
Fereastra de lucru este prezentată în figura 1
Conf.dr.ing. S.Paturca
2.1. Rularea de exemple demonstrative
In figura urmatoare se prezinta modul de alegere a aplicatiilor demonstrative furnizate de optiunea de
ajutor.
Conf.dr.ing. S.Paturca
Conf.dr.ing. S.Paturca
Rularea unui alt exemplu demonstrativ existent in librariile Proteus 7.8.
Alegerea unui
exemplu
demonstrativ
Conf.dr.ing. S.Paturca
Selecția elementelor existente in mediul Proteus, precum: osciloscoape, analizoare de semnal, terminale, voltmetre,
ampermetre, s.a, este ilustrata in figura următoare.
Componente
predefinite, utile
Selectia unui instrument si plasarea
pentru simulare
acestuia in zona de lucru
Conf.dr.ing. S.Paturca
2.2. Deschiderea librăriei cu componente
Librăria cu componente se deschide prin selectarea pictogramei „Pick parts from libraries”, sau prin apăsarea butonului
din meniul principal, cu pictograma indicata in figura urmatoare.
Fig. 11
În fereastra „Pick Devices” se găsesc pe categorii si subcategorii componente utile în realizarea aplicațiilor.
Exercitiul 1 demonstrativ
În fereastra cu componente Pick Devices se alege microcontrolerul, în acest exemplu s-a ales PIC16f887.
La uC se specifică potențialele pinilor de alimentare şi calea către un program compilat (fișierul *.hex) într-un proiect
realizat in mediul MPLABX.
Conf.dr.ing. S.Paturca
Parametrii componentelor se editează prin dublu-click.
Se vor adăuga şi restul de elemente necesare pentru realizarea schemei electronice, in exemplul următor s-au ales: rezistoare,
LED-uri, alimentare, masa (GND).
Pentru rezistenţele de conectare a pinilor de intrare la + sau la GND, se alege valoarea uzuală, 10kOhm.
Conf.dr.ing. S.Paturca
Fig. 13
Se aduce in schema un LED, o rezistenta de limitare a curentului si se fac conexiunile. Valoarea rezistentei de
limitare a curentului prin diodă se alege considerând un curent maxim de 20mA, şi căderea de tensiune în
conducție pe diodă de 2.2V.
=> R = (5-2.2)/20e-3 = 140 ohm
Conf.dr.ing. S.Paturca
In paragraful urmator sunt prezentati pasii pentru realizarea acestei aplicatii software, in mediul
MPLABX.
Conf.dr.ing. S.Paturca
3. Prezentarea mediului de dezvoltare integrat MPLABX, şi rularea unei
aplicații simple demonstrative
In aceasta secțiunea se prezintă IDE-ul MPLABX, util pentru dezvoltarea de aplicații cu microcontroler Microchip.
Pentru aplicația demonstrativa cu uC PIC16F887 pe 8 biţi.
1. După instalarea programului se lansează mediul de dezvoltare MPLABX IDE 2, se dezvolta un proiect nou,
urmând pașii ilustrații in figurile următoare.
Conf.dr.ing. S.Paturca
2. Se selectează microcontrolerul care va fi utilizat – în exemplul de față: PIC16F887
Conf.dr.ing. S.Paturca
Fereastra
proiectului
Selectia fisierului
editabil main.c
/**********************************************************************/
/* Files to Include */
/**********************************************************************/
#if defined(__XC)
#include <xc.h> /* XC8 General Include File */
#elif defined(HI_TECH_C)
#include <htc.h> /* HiTech General Include File */
#endif
/**********************************************************************/
/* User Global Variable Declaration */
/**********************************************************************/
void init_porturi(void);
void init_porturi()
{
// dezactiveaza functia "analog input" pentru toti pinii care au aceasta functie
ANSEL = ANSELH = 0;
/**********************************************************************/
/* Main Program */
/**********************************************************************/
void main(void)
{
unsigned long k; // contor pentru asteptare
// Initializeaza porturile
init_porturi();
// Asteapta un timp
for (k = 0; k < 10000L; k++)
{}
// Asteapta un timp
for (k = 0; k < 10000L; k++)
{}
}
}
4. La pasul următor acesta va fi compilat si link-editat, prin apăsarea butonului „Build project”.
Fereastra de
lucru
Conf.dr.ing. S.Paturca
Disponibilitatea mai multor proiecte în zona de lucru din MPLAB X IDE
Dacă sunt disponibile mai multe proiecte în zona de lucru, doar unul dintre acestea poate fi compilat si
link-editat la un anumit moment, acela care este setat ca proiect main. Altfel spus, pentru a crea fisierul
executabil se alege proiectul dorit prin apăsare click dreapta pe numele acestuia, iar din meniul derulant
se selectează „Set as Main Project”.
Conf.dr.ing. S.Paturca
4.Construirea schemei si rularea de aplicații in mediul Proteus
Nota informativa:
Pentru versiunile de Proteus 7 Professional, folderul care contine librariile poate fi localizat
astfel:
C:Program Files (x86)\Labcenter Electronics\Proteus 7\ProfessionalLIBRARY
Pentru versiunile Proteus 8 Professional, folderul care contine librariile poate fi localizat:
C:ProgramData\Labcenter Electronics\Proteus 8\ProfessionalDataLIBRARY
4.2 Se extrage fișierul arhivat descarcat si se copiază cele doua fișiere obținute
(ARDUINO.IDX and ARDUINO.LIB) in PROTEUS
=> Setup directory: Labcenter\LIBRARY
Exercitiul 2 demonstrativ
Schema se construiește într-un proiect nou, componentele schemei se aduc in proiect pe
rand, selectate din fereastra Pick Devices, iar vizualizare acestora se face prin apăsarea
butonului P.
Valoarea rezistentei de limitare a curentului prin diodă se alege considerând un curent prin
LED intre (10-15) mA.
R = U/I = (5V-2V) /0.01A = 300 Ohm
Conf.dr.ing. S.Paturca
4.4 - Pentru a simula schema se rulează programul construit in ARDUINO. In meniul FILE se
selectează PREFERENCES, și se alege opțiunea de compilare ARDUINO, pas exemplificat
in figura următoare. Astfel devine programul Arduino și se copiază locația vizualizata in zona
OUTPUT.
La MCU se adauga
calea catre fisierul .hex
Conf.dr.ing. S.Paturca
Se ruleaza in Proteus aplicatia de simulare anterioara.
Conf.dr.ing. S.Paturca
5. Vizualizarea de exemple demonstrative disponibile in Arduino IDE
Selectare exemple
demonstrative
Zona “setup”
Zona “loop”
Conf.dr.ing. S.Paturca
Fig. From the source code to the binary executable code
Conf.dr.ing. S.Paturca
Informatii de ajutor disponibile pe site-
ul oficial, necesare penntru
cunoasterea modului de apelare al
functiilor predefinite
Opțiune selectabila
pentru dezvoltarea
programului aplicației
Zona pentru
parametrizarea
Fig. Exemplu de schema elementelor plasate in
fereastra de lucru
https://fritzing.org/projects/digital-output-loop
Se vizualizeaza schema la optiunile Breadoard si Schematic, PCB-ul si programul aplicatiei la optiunea
Code.
Pas 2. Pentru teste se poate folosi programul demonstrativ Knob, disponibil in Arduino IDE.
Conf.dr.ing. S.Paturca
Program de testat
Conf.dr.ing. S.Paturca
ASC
Curs 4.1
Cuprins
Ø Sistem numeric
Ø Porturi digitale de I/O
Sistem numeric
sistem/
proces
Sistem numeric
senzori
sistem/
proces
Elemente de baza
- contine elementele de calcule aritmetice,
logice si functiile de control;
n Memorie (RAM - pentru citire/scriere, si ROM - doar citire),
n Interfete de intrare/iesire - pentru controlul periferiei calculatorului.
Memorie
Memorare Memorare
program date MICROPROCESOR
(CPU)
sistemului.
§ decodifica si executa instructiunile programului
pe baza caruia functioneaza intregul sistem.
Organizare interna
"Magistrală" - set de conexiuni fizice între blocuri prin care informaţia care
Magistrala
Magistrala
Microprocesor
Magistrala
De la / la
periferice
RG
UAL
UCmd
SC
Legenda
Microcalculatorul structurat ca o
• UCP = {RG, UAL, UCmd} = Unitatea Centrala de Prelucrare
maşină “VON NEUMANN”
• UC = {UCP, M} = Unitatea Centrala
• MB = {UC, I/E} = Masina de Baza
• SC = {MB, Software de Baza} = Sistem de Calcul
Exemple de arhitecturi
- Arhitectura Neumann
• avantaje - folosirea unei memorie unice pentru date şi instrucţiuni
(memoria principală, externă procesorului).
• rezultă simplificarea UCP din punctul de vedere al automatului de adresare a memoriei şi al
numărului de registre implicate.
• creşte flexibilitatea sistemului, pentru că nu exista restricţii privind adresele de stocare a datelor
şi instrucţiunilor în memoria principală.
- Arhitectura Harvard
- organizare cu magistrale separate pentru date şi instrucţiuni este mai rapidă din punct de
vedere al vitezei de funcţionare.
- au o magistrală externă unică de date şi instrucţiuni, dar magistrale interne (şi circuite de
memorie tampon locale) separate pentru date şi instrucţiuni.
Microprocesor (uP) / microcontroller
(MCU)
MICROPROCESSOR MICROCONTROLLER
Microcontrollere
n procesoare specializate
q memorie de program
q memorie de date
q sistem de intreruperi
Periferice
• permite conexiunea cu exteriorul; asigură anumite “servicii”
procesorului.
Magistrale
De date reţea de conexiuni între microprocesor şi celelelalte
elemente componente.
De adrese
De control
n timp predefinit de execuţie a instrucţiunilor
n arhitectură de tip Harvard (separarea memoriei de program de
memoria de date)
n sistem de întreruperi, adaptat componentelor periferice
(interfeţe, contoare, etc.), conţinute în circuit
n performanţe de calcul mai modeste, comparativ cu procesoarele
n set mai limitat de instrucţiuni în limbaj maşină
n limitări în ceea ce priveşte capacitatea de memorare
n consum redus
n cost redus
n Exemple:
q PIC12Fxx, PIC16Fxx, PIC18FXX, PIC 32Fxx
q ARM
q AVR
q Intel 8051/31, Intel 8748
n O familie este caracterizata prin:
q aceeasi arhitectura de baza
q acelasi set de instructiuni
q aceleasi instrumente de dezvoltare a programelor
n Diferente intre variante ale aceleiasi familii:
q capacitate de memorie (pentru date si pentru program)
q tipuri de interfete incluse
q numar de porturi, contoare,
n UCP – unitatea centrală de prelucrare
q asigură execuţia instrucţiunilor unui program
n generatorul de ceas
q generează semnalul de ceas necesar pentru funcţionarea UCP şi
furnizează o frecvenţă de referinţă pentru contoarele interne şi canalul
serial
n porturile de intrare/ieşire
q permit achiziţia sau generarea de semnale digitale
q un semnal poate fi configurat ca intrare, ieşire sau semnal bidirecţional
n canalul serial
q implementează protocolul de comunicaţie (ex. RS 232 -canal serial
asincron, bidirecţional pe caracter); Unele variante au canal serial
suplimentar, care implementează protocolul I2C. Acest protocol permite
construirea unei magistrale seriale în locul celei paralele clasice
n timer 0, 1, 2
q set de contoare utilizabile pentru generarea periodică a unor întreruperi (ex.:
pentru ceas de timp-real), pentru numărarea unor evenimente externe sau
pentru generarea frecvenţei de transmisie serială
n WD – contor Watch-Dog
q utilizat pentru detectarea funcţionării anormale a UCP;
q dacă contorul nu este reiniţializat periodic, se consideră o anomalie şi ieşirea
contorului va provoca o reiniţializare a procesorului
Sistem cu Microprocesor
Porturi de intrare/iesire:
§ registre continute in interfetele de intrare/iesire, prin care UCP controleaza
transferul de date
§ accesul la porturi:
- prin adresa si prin instructiuni dedicate (ex: IN, OUT); putine instructiuni
au acces direct la porturi de I/E
- spatiu separat de adrese pentru memorie si pentru porturi de I/E
(exceptie: MCU)
§ Spaţiul dispozitivelor de intrare/ieşire
§ Accesarea porturilor ca porturi propriu-zise
§ Accesarea porturilor ca locaţii de memorie
§ Tehnici de intrare/ieşire uzuale
§ Interogarea continuă (tehnica “polling”)
§ Întreruperi
Utilizare porturi digitale de I/O
Citiri de la porturi de I/O
- Cuvinte de stare – citire informatii despre functionarea interfetei (viteza de lucru, citire
stare parametri, etc.)
- Cuvinte de date – citire date de la interfata (stare biti port digital, valori specific conversiei
A/D, etc.)
Scrieri catre porturi de I/O
- Cuvinte de comanda – setare parametri de functionare pentru interfata (stare/resetare stare
parametri, comenzi ON/OFF pentru elemente de iesire digitale, etc.)
- Cuvinte de date – trimitere date spre interfata (valori conversie D/A, stare/resetare biti port
iesire digital, etc.)
Pentru oricare cuvant de date al portului exista un element exterior de tip
inchis/deschis (ON/OFF sau “1”/”0”)
Input – citeste stare elementului de tip contact – are doua stari -> buton/tasta/contact
Output – seteaza starea unui element de executie de tip binary -> releu, LED,
contactor, bec, etc.
Utilizare porturi digitale de I/E
Echipament 0
1
2
n-1
n
Echipament 0
1
2
n-1
n
Identificarea starii unui echipament - INPUT
Identificarea starii echipamentului conectat la un port de intrare se face prin operatia de 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
Mască de testare,
0 ………....0 1 0 …….…0
Masca_bit_k
pentru izolare bit_k:
- 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_k
bit_n .…bit_k+1 1 bit_k-1 .…bit_0
Setarea bitului k:
Masca_bit_k = 10000b;// valoarea “1” trebuie pozitionata pe pozitia k
Data_OUTPUT |= Masca_setare_bit_k;
// OUTPUT la port Rez_OUPTUT_bit_k Ex.
Data_OUTPUT | = 100000b;
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.
Resetare echipament k
Resetare bit k:
Masca_bit_k = 1111111110111111b; // valoarea 0 trebuie
pozitionata pe pozitia k
Data_OUTPUT &= Masca_resetare_bit_k;
// OUTPUT la port Rez_OUPTUT_bit_k Exemplu:
Data_OUTPUT & = 11111011b;
// OUTPUT la port Rez_OUPTUT_bit_2
ASC
Curs 4_2
Cuprins
conf.dr.ing. S.Patura
Sistem numeric - recapitulare
senzori
sistem/
proces
conf.dr.ing. S.Patura
Utilizare porturi digitale de I/O - recapitulare
Citiri de la porturi de I/O
- Cuvinte de stare – citire informatii despre functionarea interfetei (viteza de lucru, citire stare parametri, etc.)
- Cuvinte de date – citire date de la interfata (stare biti port digital, valori specific conversiei A/D, etc.)
Scrieri catre porturi de I/O
- Cuvinte de comanda – setare parametri de functionare pentru interfata (stare/resetare stare parametri, comenzi
ON/OFF pentru elemente de iesire digitale, etc.)
- Cuvinte de date – trimitere date spre interfata (valori conversie D/A, stare/resetare biti port iesire digital, etc.)
Pentru oricare cuvant de date al portului exista un element exterior de tip inchis/deschis (ON/OFF sau “1”/”0”)
Input – citeste stare elementului de tip contact – are doua stari -> buton/tasta/contact
Output – seteaza starea unui element de executie de tip binary -> releu, LED, contactor, bec, etc.
conf.dr.ing. S.Patura
Exemplu
conf.dr.ing. S.Patura
Funcționalități ale pinilor microcontrolerului ATmega328p,
corelare cu pinii plăcii de dezvoltare Arduino
Microcontrolerul ATmega-328
- de tip RISC (Reduced Instruction Set)
pe 8 biți, din familia AVR (Advanced
Virtual RISC) a firmei Atmel (din 2016
Microchip)
- performanțe bune, poate sa execute
instrucțiuni într-un singur ciclu de ceas,
atingând randamente de 1MIPS (Millions
of instructions per second) per MHz.
- optimizat pentru consum redus de
putere raportat la viteza de procesare
- poate fi folosit pentru sisteme
embedded.
conf.dr.ing. S.Patura
Pinii microcontrolerului ATmega328
Pinii microcontrolerului ATmega328 sunt împărțiți în porturi
astfel:
n VCC - pin pentru sursa de tensiune digitală (potențial pozitiv).
n GND - pin de masă (potențial negativ).
n Portul B - port bidirecțional (I/O) pe 8 biți, format din pinii de la
PB0 la PB7, fiind mapati pe pinii digitali Arduino de la pinul 8 la
13.
q rezistențe interne de agățare (rezistențe de tip pull-up).
n Portul D - port bidirecțional (I/O) pe 8 biți, format din pinii de la
PD0 la PD7, corespunzatori pinilor digitali Arduino de la 0 la 7.
q rezistențe interne de agățare (rezistențe de tip pull-up).
n Portul C - port bidirecțional (I/O) pe 7 biți, Pinii 6 si 7 sunt
accesibili doar pe placa Arduino Mini. Pinii de la PC0 la PC5
sunt mapati pe pinii analogici ai placii Arduino de la pinul 0 la 5.
q rezistențe interne de agățare (rezistențe de tip pull-up).
n PC6/RESET - pin de I/O daca siguranța RSTDISBL este programată.
Dacă siguranța RSTDISBL nu este programată este transformat în
pin de RESET.
n AVCC - pin unde se conectează sursa de tensiune pentru convertorul
analog digital (CAD). Trebuie conectat extern la VCC chiar daca
CAD-ul nu este folosit.
n AREF - pin analog pentru tensiunea de referință pentru CAD.
n ADC[6:7] reprezintă intrările 6 și 7 pentru CAD în cazul încapsulărilor
TQFP și VFQFN. Acești pini sunt alimentați de sursa de tensiune
pentru partea analogică. Pinii PC[0:5] pot fi configurați ca celelalte 6
intrări pentru CAD
Numerotarea pinilor
conf.dr.ing. S.Patura
microcontrolerului ATmega328
Tabel cu regiștrii de configurare a porturilor
PORTB maps to Arduino digital pins 8 to 13 The two high bits (6 & 7) map to the The PORT register controls whether the
crystal pins and are not usable pin is HIGH or LOW,
DDRB - The Port B Data Direction Register - read/write
PORTB - The Port B Data Register - read/write
PINB - The Port B Input Pins Register - read only The PIN register reads the state of
PORTC maps to Arduino analog pins 0 to 5. Pins 6 & 7 are only accessible on the
INPUT pins set to input
Arduino Mini
DDRC - The Port C Data Direction Register - read/write
PORTC - The Port C Data Register - read/write
PINC - The Port C Input Pins Register - read only
conf.dr.ing. S.Patura
Registre
is the direction register for Port D (Arduino digital pins 0-7).
The bits in this register control whether the pins in PORTD are configured as
inputs or outputs.
Example:
conf.dr.ing. S.Patura
conf.dr.ing. S.Patura
Exemple
Exemple:
- setarea pinului PB5 ca pin de ieșire se inițializează registrul
DDRB = 0b00100000
conf.dr.ing. S.Patura
Exemple
conf.dr.ing. S.Patura
Buton
Butoanele pot transmite nivel de tensiune diferit, făcând ca sistemul să fie binar, ON sau OFF,
(de exemplu, 5 Volți = ON = circuit închis și 0 Volți = dezactivat = circuit deschis) reprezentat prin logica binară de “0” și “1”.
În urma fluctuațiilor apărute la apăsarea butonului, microcontrolerul poate înregistra mai multe apăsări și, într-un final, mai multe
semnale de 0 și 1 consecutiv. Acest fenomen poate introduce erori în sistem.
Pentru a menține tensiunea de ieșire la un nivel constant la apăsarea butonului, se conectează o rezistență de Pull-up sau Pull-
down.
Buton
Rezistorul Pull-down, de coborâre la 0, are rolul de a păstra valoarea logică 0 la ieșire atunci când
nu este apăsat butonul.
Stabilirea unui nivel logic sigur (0 în acest caz) împiedică apariția aleatorie a unei valori 0 sau 1 la intrarea digitală a
MCU, datorită unor eventuale zgomote electrice.
conf.dr.ing. S.Patura
Pull-up / Pull-down Resistor
The official Arduino docs recommend a 10kΩ pull-down or pull-up resistor for digital input pins.
On the ATmega microcontrollers (those on the Arduino Uno and Leonardo), the internal pull-up resistor is 20kΩ.
conf.dr.ing. S.Patura
conf.dr.ing. S.Patura
conf.dr.ing. S.Patura
conf.dr.ing. S.Patura
Alta componenta uzual
incluse pe cipul
microcontrolerului
conf.dr.ing. S.Patura
Convertoare Analogic-Digitale (CAD)
conf.dr.ing. S.Patura
Ex. - Interfata CAD
Start Indicator de
Pinul AnCom al convertorului se va conecta
l a m a sa p a r t ii a n a l o g ic e d e m a s u ra a conversiei A/D stare a Bitii de date de Circuit
conversiei A/D
schemei. iesire ai
convertorului A/D
tampon
Pinul DigCom se conecteaza la masa partii
digitale a schemei. Pinul B&C trebuie utilizat
pentru a genera inceperea unei noi conversii
(start conversie), la aparitia unui puls pozitiv
pe acest pin.
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. De remarcat faptul ca 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).
Circuitele de interfață au rolul de a converti semnalele de intrare de diferite forme în semnale logice
adaptate unității centrale și de a transforma semnalele logice ale unității centrale în semnale de ieșire
corespunzătoare. conf.dr.ing. S.Patura
Digital-Analogice (CDA
n utilizare:
q Inscriere data de convertit in registrul de date pentru lansarea conversiei
q Nu necesita timp de asteptare pentru terminarea conversiei
conf.dr.ing. S.Patura
ASC
Curs 5
Cuprins
Ø Arhitectura sistemului
Ø Memorii
Sistem cu Microprocesor
Exemple de memorii
RAM
8Kx8
8K=23x210=213
=>x=13
=>A0...A12
Rezolvare:
Linie de intrare
in decodificator
Schema de conectare a circuitelor de memorie RAM la magistralele
sistemului cu microprocesor
CSP 0
O0
CSP 1
O1
RD
CS
CS
CS
CS