Sunteți pe pagina 1din 42

Dr. ing.

Mihaela Hnatiuc

Microcontrolere
Curs 1
Structura cursului
• Introducere în microcontrolere
• Tipuri de microcontrolere
• Familii de microcontrolere - Descrierea
principalelor caracteristici
• Plăci de dezvoltare
• Programarea microcontrolerelor în C
Bibliografie
1. Corneliu Burileanu, Microcontrolere - Note de curs
2. http://en.wikipedia.org/wiki/Da_Vinci_Surgical_System
3. http://www.answers.com/topic/robot
4. Hnatiuc M., Mediul de dezvoltare EdSim51. Descriere şi aplicaţii, Ed. Nautica, 2010,
ISBN 978-606-8105-10-9
5. Burileanu Corneliu, Microcontrolere - Note de curs
6. Crisp J., Introduction to Microprocessors and Microcontrollers; Butterworth-
Heinemann, 2003
7. Nebojsa Matic, Microcontrolere PIC on-line,
8. http://www.mikroelektronika.co.yu/romanian/product/books/PICbook/picbook.htm
9. Mitescu M., Susnea I., Microcontrollers in Practice, Springer, ISBN-13 978-3-540-
25301-3 Springer Berlin Heidelberg New York, 2005
10. Rotar D., Anghelut A., Arhitectura sistemelor de calcul, Note de curs Indrumar de
laborator , Ed. Alma Mater Bacău, 2007
11. John Crisp, Introduction to Microprocessors and Microcontrollers, Elsevier, ISBN 0
7506 5989 0, 2004
Bibliografie
1. http://ww1.microchip.com/downloads/en/devicedoc/35007b.pdf
2. http://academic.csuohio.edu/simond/courses/eec417/ESPWithThePIC16F877.pdf
3. ***, 8051 v7.2C, Cross-Compiler User's Manual, A publication of Altium BV, 2006,
http://www.tasking.com/support/8051/m_cc51_v7.2.pdf
4. Nigel Gardner, An introduction to programming The Microchip PIC in CCS,
5. http://www.teiser.gr/icd/staff/kalomiros/Mtptx/e-books/eBook%20-%20PIC%20Programming
%20with%20C.pdf
6. http://www.nxp.com/documents/data_sheet/80C552_83C552.pdf
7. http://www.aggsoft.com/rs232-pinout-cable/serial-cable-connections.htm
8. http://www.ti.com/lit/ds/symlink/max232.pdf
9. http://www.nxp.com/documents/data_sheet/80C552_83C552.pdf
10. http://www.keil.com/dd/docs/datashts/philips/8xc5x2_ov.pdf
11. http://academic.csuohio.edu/simond/courses/eec417/ESPWithThePIC16F877.pdf
12. ***, PIC16F87X Data Book, http://ww1.microchip.com/downloads/en/devicedoc/30292c.pdf
13. ***, AT45DB041B DataSheets, http://www.atmel.com
14. http://www.ti.com/lit/ds/symlink/max232.pdf
15. http://www.aggsoft.com/rs232-pinout-cable/serial-cable-connections.htm
16. http://www.mikroe.com/chapters/view/14/chapter-1-world-of-microcontrollers/
Microcontroler. Definiție
• Microcontrolerul este un circuit integrat
care cuprinde o unitate centrală de
procesare, memorie și circuite care permit
comunicarea cu exteriorul

• Un astfel de integrat constituie o soluție


pentru a reduce spațiul și costul de
utilizare al componentelor electronice
Sarcinile microcontrolerului
• Achiziționarea datelor din proces

• Procesarea datelor (control)

• Memorarea rezultatelor

• Transmiterea comenzilor către proces (comandă)

• Dialogul cu utilizatorul
Microprocesor↔Microcontroler

• Microcontrolerul conține și microprocesor pe


lângă componentele periferice pe care le cere
acesta în proiectarea schemelor electrice

• Microcontrolerul ocupă spațiu mai mic deși


timpul de prelucrare a datelor este în
avantajul microprocesoarelor
Utilizarea microcontrolerelor
• Plăci de dezvoltare (SD) – au un sistem de
operare (Monitor) inclus în memorie nevolatilă,
microcontrolerul având funcții diverse date de
utilizator

• Plăci de aplicaţii (SA) – au un program executabil


memorat în memoria nevolatilă, microcontrolerul
executând doar sarcinile rezultate din program,
utilizatorul nu poate interveni în schimbarea lor
Arhitectură microcontroler [7]
Ce trebuie să conțină arhitectura unui
microcontroler (resurse minime)
• unitate centrală (CPU)
• oscilator intern pentru ceasul de sistem
• memorie locală
• sistem de întreruperi
• porturi de intrare/ieșire
• port serial de tip asincron şi/sau sincron,
programabil
• sistem de timere-temporizatoare/numărătoare
programabile
Ce trebuie să conțină arhitectura unui
microcontroler complex
Pe lângă circuitele amintite mai sus un microcontroler mai poate
conține:
• sistem de conversie analog numerică sau numerig analogică
• circuit de modulare în durată (PWM)
• comparator analogic
• memorie de date nevolatilă de tip EEPROM
• circute de captură/comparare
• ceas de gardă (timer de tip watchdog)
• interfață serială de comunicații
• interfață I2C
• port USB
• facilităţi pentru optimizarea consumului propriu
Ce nu elimină un microcontroler
• componente ale interfeţei cu mediul exterior:

– sistem de prelucrare analogică (amplificare,


redresare, filtrare, protecţie-limitare

– elemente pentru realizarea izolării galvanice

– elemente de comutaţie de putere


Domenii de utilizare ale microcontrolerelor

• Aplicaţiile în care se utilizează microcontrolere fac


parte din categoria sisteme încapsulate-integrate
(“embedded systems”), la care existenţa unui sistem
de calcul incorporat este (aproape) transparentă
pentru utilizator
• Utilizarea lor este sinonimă cu ideea de control,
comandă
• Domeniile de utilizare sunt: robotică, mecatronică,
electronică medicală, aeronautică, automobile,
electrotehnică, etc.
Exemple de produse care folosesc
microcontrolere

• Roboți utilizați în explorarea spațiului


• Roboți utilizați în operații
• Roboți utilizați în domotică
• Automobile – confort și siguranță a pasagerilor
Imitarea gesturilor
a început utilizând mecanica [10]
Evoluția roboților umanoizi [9]
Proteze [9]
Robotica
Comportament
+
Mediul înconjurător
=
Intelligență
Exemple de roboti
Hiroshi Ishiguro [10]
Utilizarea microcontrolerelor în industrie dar
și în servicii [10]
Locul pe care-l ocupă microcontrolerul într-un
sistem [10]
Evoluția arhitecturii microcontrolerelor
Motivele evoluției arhitecturii microcontrolerelor sunt cerințele de pe piață:
•Nevoia de răspuns în timp real a dus la perfecționarea blocurilor din
arhitectură
•Nevoia de mai multă memorie pentru că algoritmii care se implementau
erau din ce în ce mai complexi
•Numărul de dispozitive externe cu care comunică microcontrolerul a crescut
ceeea ce a dus la construirea mai multor porturi de intrare/ieșire și de
comunicare
•Alimentarea de la surse portabile a impus consum redus de energie de
aceea au apărut mai multe moduri de alimentare a blocurilor
•Dorința de precizie a dus la dezvoltarea de convertoare cât mai performante
•Nevoia de conectivitate Ethernet a dus la apariția unei stive TCP/IP și porturi
de ieșire de tip USB, Bluetooth, etc.
CLASIFICĂRI ŞI VARIANTE
CONSTRUCTIVE
• Clasificarea se poate realiza funcție de:
– lungimea (dimensiunea) cuvântului de date 4,
8,16, 32, 64 de biţi
– puterea de calcul
– aplicațiile care utilizează microcontrolere -
dedicate, de uz general
– tipul de instrucțiuni
Evoluţia MC din punct de vedere al
resurselor disponibile pe chip
1. de uz general care sunt puse la dispoziţia
utilizatorului pentru a realiza aplicaţii

2. specializate care dispun de resurse specifice unui


anume gen de aplicaţii (automobile, telecomunicaţii,
Internet, acţionări electrice, etc)

3. care dispun de resurse hardware configurabile la


utilizator
- resurse configurabile ca: memoria, elemente de logică
programată, module specializate, gen convertoare A/D şi
convertoare D/A, şi module de procesare avansată a datelor.
CONTROLUL PUTERII CONSUMATE ŞI ALIMENTAREA LA
TENSIUNI REDUSE
• Majoritatea microcontrolerelor pot fi trecute sub control soft în stări speciale cum ar fi: în
aşteptare (STAND-BY), inactiv ("IDLE") sau oprit ("HALT", "POWER DOWN"),
– modul de tip "IDLE" toate activităţile sunt oprite cu excepţia circuitului oscilatorului local
de ceas, dacă acestea există: circuitul "watchdog" (ceasul de gardă), circuitul de
monitorizare a oscilatorului de ceas şi eventual un temporizator dedicat("idle timer
– Modul"HALT" toate activităţile sunt oprite, tensiunea de alimentare poate fi coborâtă
sub valoarea nominală, fără alterarea stării (CPU, RAM, I/O), puterea consumată fiind
minimă. Ieşirea din această stare se face prin reset sau ca urmare a unei cereri de
întrerupere.

• Se mai oferă uneori ca facilitate o protecţie la scăderea accidentală (în anumite limite) a
tensiunii de alimentare ("brownout protection"). La scăderea tensiunii de alimentare sub o
anumită limită ("brownout voltage") microcontrolerul este iniţializat (resetat) şi ţinut în
această stare atâta timp cât condiţia respectivă persistă.

• Tensiunea de alimentare standard pentru microcontrolere a fost mult timp, din considerente
şi istorice(vezi TTL-ul), 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.
Interfața externă

• Toate microcontrolerele au un număr oarecare de intrări/ ieşiri organizate sub


forma unor porturi I/O; conexiunile exterioare sunt bidirecţionale sau
unidirecţionale, unele sunt multifuncţionale (se oferă funcţii alternative pe acelaşi
pin), unele pot avea o capacitate sporită de a absorbi curent
• Alte porturi de intrare/ieşire pentru comunicarea cu exteriorul sunt:
– UART (Universal Asynchronous Receiver Transmitter) este un port serial
bidirecţional destinat implementării unui protocol clasic de comunicaţie
asincron;
– USART (Universal Synchronous Asynchronous Receiver Transmitter) este un
port similar cu UART, dar care permite implementarea şi a unui protocol
sincron cu obţinerea unor viteze mai mari de comunicaţie;
– SCI (Serial Communications Interface) este un circuit de tip UART îmbunătăţit,
definit şi utilizate de firma Freescale(Motorola).
– LIN (Local Interconnect Network) reprezintă o implementare particulară a unui
protocol de comunicaţie asincron, utilizată în industria de automobile ca o
alternativă de mică viteză dar cu preţ scăzut pentru magistrala şi protocolul
CAN
Interfața externă
– Porturi seriale sincrone dedicate - sunt destinate transferului serial de date
de mare viteză cu unele periferice specializate (sisteme de afişare,
convertoare analog-numerice, etc.)
• SPI (Serial Peripheral Interface) - este un port serial sincron
• Microwire / Microwire Plus - este o interfaţă serială bidirecţională
sincronă definită şi utilizată de firma National Semiconductors
• I2C (Inter Integrated Circuits bus) - este o interfaţă serială bidirecţională
(pe numai 2 fire), destinată aplicaţiilor de 8 biţi
• CAN (Controller Area Network) - este un standard (o magistrală şi un
protocol) de comunicaţie serială sincronă
Interfața externă
• Conectivitate Ethernet/Web – permite integrarea cu uşurinţă într-o reţea de tip
Ethernet, pentru a face posibilă, în final, implementarea unui protocol TCP/IP (a
unei stive TCP/IP). Resursele respective pot fi de natură software (stivă soft) care
presupun o viteză de prelucrare (putere de calcul) a CPU suficient de mare pentru
a nu afecta vizibil operarea propriu-zisă a controlerului, sau hardware (stivă
hardware). Pe baza acestei stive se poate realiza o conectivitate tip HTTP, FTP,
STMP, POP3, etc.
• Port USB - magistrala serială USB (Universal Serial Bus) a fost creată pentru
conectarea cu uşurinţă a diverselor periferice la un calculator PC (cu rolul de gazdă
- host). Conexiunea permite si furnizarea tensiunii de alimentare.
• Conectivitate Wireless- se referă la existenţa unor resurse hardware si/sau
software care să permită integrarea cu uşurinţă şi la un preţ de cost avantajos într-
o reţea de tip wireless, pentru a face posibilă, în final, implementarea unui
protocol (a stivei aferente protocolului).
• Convertoarele Analog Numerice (CAN, ADC)
• Intrări analogice semnalul fiind convertit cu Convertoare Analog Numerice
• Intrări PWM (PWM- Pulse Width Modulation)
Familii de microcontrolere
• Familia Intel
– 8048 (Intel MCS-48 - www.intel.com ) - părintele microcontrolerelor
pe 8 biţi
– 8051 - A doua generaţie de microcontrolere de 8 biţi a firmei Intel care,
deşi apărută acum 20 de ani, încă ocupă un segment semnificativ de
piaţă. Are spaţii de memorie separate pentru program şi date, poate
adresa 64Ko memorie de program
– 80C196 (Intel MCS-96) - microcontroler pe 16 biţi făcând parte din
generaţia treia de microcontrolere a firmei Intel.
– 80C186, 80C188 (Intel, AMD, ş.a.) Derivate din clasicele 8086/88 prin
includerea pe acelaşi microcircuit a 2 canale DMA, 2
numărătoare/timere, un sistem de întreruperi şi un controler pentru
DRAM.
Familii de microcontrolere
• Familia Motorola
– 68HC05 -pe 8 biţi derivat din microprocesorul M6800 şi care prezintă
multe asemănări cu un alt microprocesor răspândit, la timpul său, 6502.
– 68HC11, 68HC12, 68HC16 (Freescale) 68HC11 a fost unul din cele
mai puternice microcontrolere pe 8 biţi, foarte răspândit în ciuda
faptului că M otorola a fost un timp singurul producător.
– "super 68HC11", numit 68HC12 bazat pe o nouă unitate centrală
numită CPU12, care reprezintă extensia la 16 biţi a arhitecturii HC11
– 683xxx (Freescale) Microcontrolere pe 32 de biţi construite în jurul
unui CPU analog microprocesorului M68020 (CPU32), denumite şi
"procesoare integrate". Putere de calcul comparabilă sau mai mare ca a
lui Intel 80386.
Familii de microcontrolere
Familia Microchip
• PIC (Microchip- www.microchip.com ) Primul microcontroler din această
familie (PIC1650) a apărut acum mai bine de 20 de ani pe vremea când
firma era proprietatea General Instruments.

Familia Atmel
• AVR (Atmel- www.atmel.com ) - concurentul seriei PIC este familia
numită AVR, a firmei ATMEL, familie apărută în ultimii ani, care oferă
variante de microcontrolere oarecum asemănătoare ca resurse cu familia
PIC, la performanţe similare sau mai bune.
Familii de microcontrolere
• COP4(00) şi COP8(00) (NS -National Semiconductors ) COP4
este un microcontroler pe 4 biţi

• ZILOG Z80 - derivat al microprocesorului Z80, reprezintă un


compozit al mai multor arhitecturi diferite

• Z180 - are un CPU similar cu Z80 dar îmbunătăţit, cu resurse locale


cum ar fi: management de memorie (memorie paginată de maxim
1MB), USART (numit SIO), 2 canale DMA, timere, sistem de
întreruperi, eventual PIO. Instrucţiuni suplimentare faţă de setul
standard Z80, printre care şi înmulţirea.
Familii de microcontrolere
• Texas Instrauments TMS370 (www.ti.com ) Microcontrolerul standard pe 8 biţi al firmei TI
realizat în multe variante, prezintă unele asemănări cu 8051 (memoria de date locală, stiva,
modurile de adresare). O varietate extrem de mare a resurselor locale

• Elan AMD - SC 3/4/5xx - deosebit de performante realizate în jurul unei unităţi centrale de tip
386/486. Permit practic, doar prin adăugarea de memorie externă, obţinerea unui sistem de calcul
compatibil PC, destinat unor aplicaţii de control încapsulate-integrate ("embedded PC").

• Infineon - 80C16x - Unul din microcontrolerele de 16 biţi foarte utilizat în Europa. Arhitectură
deosebit de performantă a CPU, de tip RISC, are diverse variante, cu resurse complexe: 80C165,
80C166, 80C167, etc.
• Alte familii de microcontrolere Fujitsu Microelectronics (www.fme.fujitsu.com) - oferă familii
deosebit de puternice de microcontrolere pe 8 biţi (FMC-8), 16 biţi (FMC-16) sau 32 de biţi
(FR). În fiecare familie există zeci de variante. Multe dintre ele sunt orientate pe aplicaţiile din
industria de automobile sau din electronica de consum(audio, video, electrocasnice).
• Renesas (ex Hitachi) - oferă de asemenea o gamă largă de microcontrolere organizate în familii
de 4, 8, 16 şi 32 de biţi. Există un număr foarte mare de variante constructive în fiecare familie.

• ARM (Advanced RISC Machine) - este de fapt o unitate centrală de 32 de biţi (sau de 16/32 biţi)
care face parte din categoria structurilor IP (“Intelectual Property”).
Familii de microcontrolere 32 biți

• AT91SAM (AT91 Smart ARM) are o


arhitectură tip RISC procesor de la ARM, ca și
ARM Cortex M4, M3, ARM9 și ARM7.

– AT32AP7002 este un un procesor SOC (System-


on-chip) cu procesor AVR32 tip RISC lucrând la
150MHz.
Putem numi microcontrolerul –
minicalculator?
• Existența Bootloader duce microcontrolerul la performanța unui
calculator. Memoria de tip FLASH ușurează scrierea în această memorie
de program fără a utiliza un circuit de programare extern

• În microcontroler poate exista permanent 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, executând programul utilizator
după încărcarea acestuia.
DEZVOLTAREA ŞI TESTAREA APLICAŢIILOR
• Simulatoarele
• Un simulator este un program care rulează programul
microcontrolerului, implementează un microcontroler virtual -
folosind un sistem de calcul gazdă -host (cum ar fi un PC).
Programul se poate executa pas cu pas, conţinutul variabilelor
şi registrelor poate fi vizualizat şi modificat
• nu permite simularea în timp real a întreruperilor şi, de regulă,
programul rulează mai încet decât pe maşina reală, există mijloace
pentru evaluarea vitezei de execuţie a codului simulat (ca număr de
cicluri maşină sau de stări).
• permite şi simularea completă a interacţiunii, cel putin din punct de
vedere logic, cu toate perifericele disponibile.
Exemplu de simulatoare
EdSim51 pentru microcontrolerul 8051
Dezvoltarea și testarea aplicațiilor
• Simulatoarele de sistem - o categorie aparte de simulatoare
destinate simulării cât mai complete a sistemului şi a aplicaţiei
în ansamblu, cu alte cuvinte a microcontrolerului împreuna cu
o dispozitivele hardware externe, integrează un simulator
SPICE.

– Proteus VSM (Virtual System Modelling) al firmei


Labcenter Electronics (http://www.labcenter.co.uk/)
– UMPS (Universal Microprocessor Program Simulator) al
firmei Virtual Microdesign (www.vmdesign.com).
Dezvoltarea și testarea aplicațiilor
• Programele de depanare ("debbugers") rezidente - Sunt
programe (denumite uneori în română şi programe "monitor") care
rulează (sunt rezidente) pe maşina ţintă (microcontrolerul) oferind
facilităţi de depanare similare simulatorului.
– Interfaţa cu utilizatorul este realizată prin intermediul unui
sistem gazdă (PC) şi/sau a unui terminal alfanumeric,
conectate prin intermediul unui port serial
– Utilizează o parte din resursele microcontrolerului: se
utilizează de regulă împreună cu un sistem de dezvoltare (sau
evaluare), care este un sistem minimal realizat în jurul
microcontrolerului pe care rulează depanatorul, dar având
resurse suficiente pentru a permite testarea şi depanarea
aplicaţiilor uzuale
Dezvoltarea și testarea aplicațiilor
• Emulatoarele In Circuit (ICE-In Circuit Emulators) - Sunt
cele mai eficiente mijloace de testare şi dezvoltare şi au fost
mult timp cele mai complexe şi mai costisitoare. Presupun
existenţa unui hardware dedicat care înlocuieşte practic
microcontrolerul (se conectează în locul acestuia în sistemul
pentru care se dezvoltă aplicaţia), în acelaşi timp fiind
disponibile toate facilităţile descrise anterior şi altele
suplimentare. Permit un control total al maşinii ţintă (în timp
real), fără a folosi nimic din resursele acesteia (la variantele
cele mai costisitoare).
– Exemple de astfel de interfeţe ar fi: JTAG/ICE – In Circuit
Emulation - la multe familii de microcontrolere, BDM
(Background Debug Monitor) – pentru Freescale/Motorola.
Dezvoltarea și testarea aplicațiilor
• Nucleele (sistemele de operare) de timp real (Real Time
kernel, Real Time Operating System-RTOS) - facilitează
crearea aplicaţiilor în timp real, dar nu garantează şi faptul ca
ele chiar se vor executa în timp real, aceasta depinzând de
modul în care este utilizat acest software la nivel de sistem

• Spre deosebire de un calculator cum este PC-ul, un sistem


integrat (embedded system) este proiectat întotdeauna într-un
anumit scop şi are un cod care se execută aproape
întotdeauna dintr-o memorie ROM, fiind de presupus că nu
se modifică pe parcursul execuţiei aplicaţiei.
• ARHITECTURI DE MICROCONTROLERE

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