Sunteți pe pagina 1din 35

Microcontrolere

Curs 1

Ș.l. dr. ing. Mihai Niculescu


mihai.niculescu@upb.ro
Cuprins

 Obiectivele cursului
 Organizare
 Referințe bibliografice
 Prezentare generală microcontrolere

2
Obiectivele cursului

 Cunoașterea, înțelegerea și utilizarea conceptelor:


microcontroler, magistrală, memorie, sistem de intrare-
ieșire, metode de transfer a datelor, interfețe
 Analiza sistemelor cu microcontrolere
 Proiectarea unor aplicații folosind microcontrolere

3
Organizare

 Capitole principale
 Prezentare generală
 Caracteristici principale ATmega32
 Porturi
 Sistemul de întreruperi
 Module timer
 Convertor analog-digital
 Module de comunicații
 Mediul de dezvoltare Arduino
 Arhitecturi AVR avansate

4
Organizare

 Laborator: aplicații de programare microcontroler folosind


placa de dezvoltare EasyAVR v7 cu diverse componente:
 Microcontroler ATmega32
 Leduri
 Push-butoane
 Afișor LCD

5
Organizare

 Notare
 Curs – 60p
 Laborator – 30p
 Seminar – 10p
 Puncte curs
 Teste Moodle la finalul unor cursuri – 10p
 Test intermediar (Moodle) – teorie – 20p
 Examen – teorie + aplicație – 30p
6
Organizare

 Puncte laborator
 Teme Moodle – 10p
 Colocviu – 20p
 Slide-urile vor fi disponibile pe Moodle în fiecare
săptămână
 Condiții obligatorii pentru promovare
 Minim 15p laborator
 Minim 50p din total
 Prezenta la examen 7
Referințe bibliografice

 Margolis, M., Arduino Cookbook, 2-nd Edition, O’Reilly, 2012


 Zappa, F., Microcontrollers. Hardware and Firmware for 8-bit and 32-bit
devices, 2017
 Zoican, S., Microprocesoare și microcontrolere. Aplicații, Ed. Politehnica
Press, 2011
 Ciascai, I., Microcontrolere AVR. Structura și aplicații, Presa Universitară
Clujană, 2013
 Sztojanov, I., Aplicații hardware și software cu microcontrolerul PIC
12F675, 2008
 Mitescu, M., Susnea, I., Microcontrollers in Practice, Ed. Springer, 2005
 www.microchip.com – datasheet și application notes
 www.mikroe.com
 www.avrfreaks.net
8
Avem nevoie de microcontrolere ?

 Robotică și mecatronică
 Industria auto
 Sisteme Inteligente de Transport

9
Avem nevoie de microcontrolere ?

 Electronică de consum
 Aparatura electrocasnică
 În controlul mediului şi climatizare
 În mijloacele moderne de măsurare –
instrumentație

10
Scurt istoric
 Microprocesoare pe 4 biți: Intel's 4004 (1971), Texas Instruments (TI) TMS 1000, și
Garrett AiResearch's Central Air Data Computer (CADC)

 Microprocesoare pe 8 biți: 8008 (1972), primul procesor pe 8 biti. A fost urmat de


Intel 8080 (1974), Zilog Z80 (1976), și alte procesoare derivate pe 8 biti de la
Intel. Competitorul Motorola a lansat Motorola 6800 în August 1974. Arhitectura
acestuia a fost clonată și îmbunătățită în MOS Technology 6502 în 1975, cu
popularitate similară lui Z80 în anii 1980

 16 bit (Intel 8086, 80186, 80286, 8086 SX, TMS 9900)

 32 bit (MC68000, Intel 80386DX, 80486DX, Pentium, MIPS R2000 (1984)

 64 bit (majoritatea procesoarelor moderne)

11
Scurt istoric

ATmega238P (2009). 20MHz 8-bit AVR, 32 Pins

12
Scurt istoric

13
Freescale's KL03 (2013). 48MHz ARM Cortex-M0+, 20 Pins
Definiții

 Ce este un microcontroler ?
un microcontroler (mC/uC/MC) este un
microcircuit care încorporează o unitate
centrală de procesare (CPU) și o memorie
împreună cu resurse care-i permit
interacțiunea cu mediul exterior

14
Definiții

 Diferămicrocontrolerul de
microprocesor ?
un microprocesor este un microcircuit
care încorporează o unitate centrală de
procesare (CPU). Celelalte resurse
(memorie, periferice etc.) se regăsesc în
afara circuitului integrat
15
Microcontrolere

 Resurse pe care trebuie să le conțină:


o unitate centrală (CPU), cu un oscilator intern;
 memorie locală tip ROM/PROM/EPROM/FLASH/RAM;
 un sistem de întreruperi;
 intrări/ieşiri numerice (de tip port paralel);
 un sistem de timere-temporizatoare/numărătoare
programabile;
16
Microcontrolere

 Resurse opționale:
 sistem de conversie analog numerică;
 un port serial de tip asincron și/sau sincron, programabil;
 sistem de conversie numeric analogic și/sau ieșiri PWM (cu modulare în
durată);
 comparator analogic;
 memorie de date nevolatilă de tip EEPROM;
 facilități suplimentare pentru sistemul de temporizare/numărare
(captare și comparare);
 sisteme de monitorizare a funcționării în parametrii normali (watchdog);
 facilități pentru optimizarea consumului propriu;

17
Regiștrii

 De obicei un registru se implementează ca o locație de


memorie RAM

 Sunt folosiți pentru a memora valoarea unui byte sau


multiplii

18
Regiștrii cu funcții speciale

 Sunt conectați la circuite interne specifice: timer, ADC,


oscilator

19
Setul de instrucțiuni
 CISC: Complex Instruction Set Computer
 Instrucțiuni a caror executie genereaza operatii de procesare complexe, multe
instructiuni sunt specializate: se pot folosi doar în anumite moduri de adresare sau cu
anumite registre
 Număr redus de registre cu funcții determinate (acumulator, index etc.)
 De obicei arhitectura interna a uC este mai complicata, dar codul poate realiza mai mult
cu mai putine instructiuni (comparat cu RISC)

 RISC: Reduced Instruction Set Computer


 Instrucțiuni a caror executie genereaza operatii simple, iar in general sunt simetrice: pot
fi folosite la fel în orice mod de adresare sau cu orice registru
 Număr mare de regiștrii (ex AVR – 32)
 De obicei chip mai mic, consum mai redus și viteză ridicată de execuție
 De obicei arhitectura interna a uC este mai simpla, dar codul poate avea nevoie de mai
multe instructiuni (comparat cu CISC)

20
Memoria

 Utilizată pentru stocarea de date


 Fiecare locație de memorie are o adresă unică
 Pot avea funcții de:
 scriere (W)
 citire (R)
 scriere/citire (W/R)
 Într-un uC pot exista multiple tipuri de memorie

21
Memoria

 Memoria RAM (Random Access Memory)


 Locațiile de memorie accesibile în orice ordine
 Poate fi citită și scrisă de unitatea centrală a MC
 Ocupă loc mult - prețuri crescute
 Tipuri de memorie RAM: DRAM, SRAM
 Memoria DRAM (Dynamic Random Access Memory):
 Volatilă, reprogramabilă, necesită controller DRAM
 Memoria SRAM (Static Random Access Memory):
 Volatilă, reprogramabilă, operare la viteze mari
22
Memoria

 Memoria ROM (Read Only Memory)


 Poate fi doar citită
 Datele nu pot fi modificate
 Memoria PROM (Programable Read Only Memory)
 Tipuri de memorie: EPROM, EEPROM, FLASH
 Memoria EPROM (Erasable PROM)
 Nevolatilă, reprogramabilă (cu ultraviolete), robustă
 Ștergere neselectivă: se pierde toată informația

23
Memoria

 Memoria Flash
 Nevolatilă și reprogramabilă
 Poate fi ștearsă/scrisă de un număr mare de ori (tipic
10.000)
 Majoritatea uC actuale utilizează această memorie pentru
stocarea programului
 Memoria EEPROM (Electrically Erasable PROM)
 Nevolatilă, reprogramabilă
 Număr foarte mare de scrieri/ștergeri (tipic 100.000)
 Viteză mică de scriere

24
Memoria

 Modalități de programare
 InCircuit/System Programming – ICP: re/programare
când uC se află pe placa de circuit imprimat
 Programare în afara sistemului folosind echipamente
dedicate

25
Bootloader

 Multe din microcontrolerele recente la care memoria de program este


de tip FLASH au şi facilitatea (au de fapt instrucţiuni dedicate acestui
scop) de a putea şi scrie în această memorie de program fără a utiliza
un circuit de programare extern. Astfel în microcontroler poate exista
permanent (rezident) un cod de mici dimensiuni (denumit şi
bootloader) care pur şi simplu va încărca prin intermediul portului
serial (este doar un exemplu) codul utilizator sau constantele pe care
acesta vrea eventual să le actualizeze.

 Bootloader-ul este şi cel care lansează în execuţie programul


utilizator după încărcarea acestuia.

26
Unitatea Centrală de Procesare - CPU

 Monitorizează și controlează toate procesele din


interiorul unui uC
 Principalele unități funcționale ale CPU sunt:
 Decodificatorul de instrucțiuni
 Unitatea Aritmetică și Logică
 Registrul Acumulator

27
Unitatea Centrală de Procesare - CPU
 Decodificatorul de instrucțiuni:
 Recunoaște instrucțiunile program și generează comenzi în
concordanță cu acestea.
 Setul de instrucțiuni este specific fiecărui uC

 Unitatea Aritmetică și Logică:


 Realizează toate operațiile matematice și logice cu date
 Conține circuite combinaţionale pentru efectuarea de operații,
regiștrii pentru memorarea locală a datelor și circuite pentru
transferul de date între regiștrii și exterior (circuite de decodificare,
codificare, multiplexare)

 Registrul Acumulator:
 Utilizat pentru stocarea datelor până când anumite operații vor fi
efectuate (deplasare, adunare, etc.) 28
Semnale ale CPU
 Magistrala de adrese:
 Liniile de pe această magistrală se folosesc pentru adresarea
locațiilor de memorie și a porturilor de intrare - ieșire.
 Magistrala de date:
 Lățimea magistralei de date este de obicei multiplu de octet (d =
8, 16, 32, 64...)
 Liniile magistralei de date pot transmite bidirecțional informațiile
(intrare sau ieșire din CPU)
 Magistrala de control:
 conține o diversitate de linii de control și sincronizare

29
Arhitectura unui uC

 Arhitectura VON-NEUMANN
 O magistrală de date (de ex. de 8 biți)
 O memorie comună pentru date și instrucțiuni
 Dezavantaje ?
 Sunt necesare două etape pentru execuția unei instrucțiuni:
 1. Extragere instrucțiune și decodificare
 2. Prelucrare dată din memorie

30
Arhitectura unui uC

 Arhitectura Harvard
 Spațiu de memorie separat pentru instrucțiuni și date
 Magistrale de date proprii
 Avantaje ?
 Execuția unei instrucțiuni necesită un ciclu de clock
 Posibilitatea execuției cvasiparalele a informațiilor pe cele
două magistrale (citire instrucțiune și accesare memorie)

31
Arhitectura unui uC

 Arhitectura Harvard
 Implementarea unui mecanism pipeline
 Mai
multe instrucțiuni se execută simultan, dar
decalat

32
Alimentarea uC

 Tensiunea de alimentare standard pentru microcontrolere


a fost mult timp, din considerente şi istorice de Vcc = 5V
(cu o anumită toleranţă). La ora actuală se oferă, pentru
multe din ele, şi variante cu tensiune de alimentare
redusă (Low Voltage) cu Vcc = 1.8 .. 3.3V, destinate unor
aplicaţii unde consumul este un parametru critic.

 Există variante cu plajă mare a tensiunii de alimentare,


de exemplu Vcc = 2..6V, funcţionarea la limita inferioară
implicând doar o micşorare a frecvenţei maxime de ceas.
33
Alimentarea uC

34
Întrebări ?

35

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