Sunteți pe pagina 1din 35

4/1/2015

AUTOMATIZAREA PROCESELOR TEHNOLOGICE SI BIOTEHNOLOGICE

Curs 6
Capitolul 6. Microcontrolere
6.1 Structura sistemelor numerice pentru automatizare
6.2 Circuite de intrare-ieire pentru sisteme numerice
6.3 Reele numerice seriale pentru conducerea
proceselor
4/1/2015

6.1 Structura sistemelor numerice pentru automatizare

Un microcontroller este un microprocesor destinat n


general controlului unor procese industriale care contine
memorii si diverse porturi de I/O integrate pe acelasi cip.

Microcontroler ATMega 32 16-PU

4/1/2015

La modul general un controler ("controller" - un


termen de origine anglo-saxon, cu un domeniu de
cuprindere foarte larg) este, actualmente, o structur
electronic destinat controlului (destul de evident!)
unui proces sau, mai general, unei interactiuni
caracteristice cu mediul exterior, fr s fie necesar
interventia operatorului uman.
Primele controlere au fost realizate n tehnologii pur
analogice, folosind componente electronice discrete
si/sau componente electromecanice (de exemplu relee).

4/1/2015

Aparitia si utilizarea microprocesoarelor de uz general a dus


la o reducere consistent a costurilor, dimensiunilor, consumului
si o mbunttire a fiabilittii.
Exist si la ora actual o serie de astfel de controlere de
calitate, realizate n jurul unor microprocesoare de uz general
cum ar fi Z80 (Zilog), 8086/8088 (Intel), 6809 (Motorola), etc.

Acronime utilizate:
un microprocesor de uz general este desemnat prin MPU
(MicroProcessor Unit),
un microcontroler este, de regul, desemnat ca MCU, desi
semnificatia initial a acestui acronim este MicroComputer Unit.

4/1/2015

Pe msur ce procesul de miniaturizare a continuat,


a fost posibil ca majoritatea componentelor necesare
realizrii unei astfel de structuri s fie ncorporate
(integrate) la nivelul unui singur microcircuit (cip).
Astfel c un microcontroler ar putea fi descris ca fiind
si o solutie (nu n sens exhaustiv !) a problemei controlului
cu ajutorul a (aproape) unui singur circuit.
O definitie, cu un sens foarte larg de cuprindere,
ar fi aceea c un microcontroler este un microcircuit
care incorporeaz o unitate central (CPU) si o
memorie mpreun cu resurse care-i permit
interactiunea cu mediul exterior.
4/1/2015

Resursele integrate la nivelul microcircuitului ar


trebui s includ, cel putin, urmtoarele componente:
o unitate central (CPU), cu un oscilator intern pentru

ceasul de sistem
o memorie local tip ROM/PROM/EPROM/FLASH si
eventual una de tip RAM
un sistem de ntreruperi
I/O - intrri/iesiri numerice (de tip port paralel)
un port serial de tip asincron si/sau sincron,
programabil
un sistem de timere-temporizatoare/numrtoare
programabile

4/1/2015

Arhitectura microcontrolerului 8051

4/1/2015

Este posibil ca la acestea s fie adugate, la un pret de cost


avantajos, caracteristici specifice sarcinii de control care trebuie
ndeplinite:
un sistem de conversie analog numeric (una sau mai multe

intrari analogice)
un sistem de conversie numeric analogic si/sau iesiri PWM
(cu modulare n durat)
un comparator analogic
o memorie de date nevolatil de tip EEPROM
facilitti suplimentare pentru sistemul de temporizare /
numrare (captare si comparare)
Un microcontroler tipic mai are, la nivelul unittii centrale,
facilitti de prelucrare a informatiei la nivel de bit, de acces direct
si usor la intrri/iesiri si un mecanism de prelucrare.

4/1/2015

Implementarea memoriei microcontrolerelor


n afar de memoria local de tip RAM, de
dimensiuni relativ reduse (de la x10 octeti la x1k),
implementat ca atare sau existent sub forma unui set de
registre si destinat memorrii datelor (variabilelor),
mai exist o serie de aspecte specifice, marea majoritate a
acestora fiind legat de implementarea fizic a memoriei
de program (si eventual a unei prti a memoriei de date) cu
ajutorul unor memorii nevolatile.

Clasic, memoria de program era implementat ntr-o


variant de tip ROM: EPROM pentru dezvoltare si
productie pe scar mic/medie sau mask-ROM pentru
productia de mas.
4/1/2015

10

Principalele concepte noi aprute de a lungul timpului n


legtur cu implementarea memoriei de program sau date sunt
enumerate n continuare.
a. OTP (One Time Programmable) - majoritatea
productorilor ofer variante de microcontrolere la care memoria
local de program este de tip OTP, practic o memorie PROM
identic intern cu varianta EPROM, dar fr fereastra de cuart
pentru stergere (deci si mai ieftine); aceste variante pot fi utilizate
ca o alternativ pentru o productie limitat, pn n momentul
testrii si validrii finale a codului, moment n care pot fi
comandate variantele (mask) ROM propriu-zise, cele mai
economice pentru o productie de mas.

4/1/2015

11

b. FLASH EPROM - este o solutie mai bun dect EPROM-ul propriu-zis


atunci cnd este necesar un volum mare de memorie program (nevolatil);
mai rapid si cu un numr garantat suficient de mare (x10000) de cicluri de
programare (de stergere/scriere), este caracterizat si prin modalitti mai
flexibile de programare; este utilizat numai ca memorie de program.

c. EEPROM - multe microcontrolere au si o memorie de acest tip, de


dimensiune limitat (de la x 10 octeti la x K octeti), destinat memorrii
unui numr limitat de parametrii (memorie de date) care eventual trebuie
modificati din timp n timp; este o memorie relativ lent (la scriere), dar cu
un numr de cicluri de stergere/scriere mai mare ca FLASH-ul (x 1 00000).
d. NO VRAM (RAM nevolatil) - realizat prin alimentarea local (baterie,
acumulator) a unui masiv RAM CMOS atunci cnd este necesar un volum
mare de memorie de program si date nevolatil; mult mai rapid dect
toate celelalte tipuri si fr limitri ca numr de cicluri.
4/1/2015

12

Architectura Memoriei microcontrolerelor AVR


4/1/2015

13

e. Programarea "In System" (ISP-In System Programming) folosirea unor memorii nevolatile de tip FLASH face posibil si
"programarea" unui astfel de microcontroler fr a-l scoate din sistemul
n care este ncorporat (programare on-line, In System Programming);.
Programarea se face de regul prin intermediul unei interfete seriale
dedicate de tip ISP (poate avea nume diferite) sau a unei interfete

standard JTAG.
Exist microcontrolere la care aceast programare se poate face prin
intermediul portului serial asincron sau al interfetei CAN (Controller

Area Network). Este posibil astfel modificarea cu usurint a codului


program sau a unor constante de lucru (local sau de la distant-remote
update).

4/1/2015

14

Programator USB AVRISP mkII

4/1/2015

Programarea ISP a microcontrolerului

15

Familii de microcontrolere reprezentative


n continuare sunt prezentate familiile de microcontrolere cele mai
cunoscute, de 8 biti si 16biti.
a. 8048
"Bunicul" microcontrolerelor pe 8 biti, mai este nc folosit! Unele
din caracteristicile sale arhitecturale se regsesc la urmtoarea generatie
(MCS-51, 8051).
b. 8051
A doua generatie de microcontrolere de 8 biti a firmei Intel care,
desi aprut acum 20 de ani, nc ocup un segment semnificativ de
piat. Cu o arhitectur destul de ciudat, este suficient de puternic si
usor de programat (odat nvtat!). Arhitectura sa are spatii de memorie
separate pentru program si date.

4/1/2015

Microcontroler 8048(stg);

8051(dr);

16

c. AVR
Un concurent puternic al seriei PIC este familia numit AVR, a firmei
ATMEL, familie aprut n ultimii ani, care ofer variante de microcontrolere
oarecum asemntoare ca resurse cu familia PIC, la performante similare sau
mai bune.
Sunt bazate pe o arhitectur diferit, dar unitatea central este tot de tip
RISC, cu cuvntul de date de 8 biti. La fel ca la PIC dimensiunea cuvntului de
program este mai mare, fiind de 16 biti. Exist cel putin 3 sub familii mari, n
ordinea complexittii resurselor, acestea fiind: AT Tiny, AT90 si ATMega.

Arhitectura microcontrolerului AVR


4/1/2015

17

6.2 Circuite de intrare-ieire pentru sisteme numerice

Toate microcontrolerele au un numr oarecare de


intrri - Inputs / iesiri numerice - Outputs (de la x 1 la
x10) organizate sub forma unor porturi I/O; conexiunile
exterioare sunt bidirectionale sau unidirectionale, unele
sunt multifunctionale (se ofer functii alternative pe acelasi
pin), unele pot avea o capacitate sporit de a absorbi curent
(de exemplu pentru comanda direct a unui LED, cu IOL max
= 20mA), etc.

4/1/2015

18

Pinii reprezinta conectorii de metal de pe pachetul


cipului controlerului.
n timp ce unii dintre acesti pini pot fi utilizati n mod liber n
programele realizate, altii au alte scopuri, de exemplu, pentru
alimentarea cu tensiune a controlerului.
Exist, de asemenea, pini, care au n mod normal un scop
distinctiv, dar n unele aplicaii pot fi utilizati in mod liber.
Pinii conexiunilor electrice care nu sunt configurablii nu pot fi
accesati din cadrul programului.
In general fiecare PIN poate fi utilizat ca intrare sau ieire
digital. Aceasta nseamn c poate "asculta" semnalul care ii este
furnizat sau furnizeaz un semnal n sine. Aceste dou comportamente
sunt numite Direcia de Date.

4/1/2015

19

Porturi
Dupa cum va puteti aminti de la cursurile anterioare de
ingineria calculatorelor, un procesor are un set de registre
care conin date sau controleaza dispozitivele periferice.
Un microcontroler, de obicei, nu este nimic mai mult
dect un microprocesor cu memorie, anumite componente
hardware speciale (contor, ADC, ...) i acces direct la I/O.
Seria microcontrolerelor Atmega are o arhitectur 8
bii. Se poate calcula valoarea mrimii unui octet n mod
normal ca un ciclu de ceas. Din acest motiv, 8 pini sunt
combinai pentru a forma 1 port, care pur i simplu este
reprezentat de un registru n CPU.
Porturile sunt enumerate cu majuscule (A, B, C, ...),
pinii cu numere de la 0 ... 7.
De exemplu PIND6 reprezint pinul nr. 6 pe portul D.
Fiecare bit ntr-un registru de I/O reprezint un pin (fizic).
4/1/2015

20

Porturi Intrare - Iesire ATMega 328


4/1/2015

21

6.3 Reele seriale pentru conducerea proceselor


n afar de setului de intrri/iesiri de uz general, pentru
interfata cu mediul exterior se ofer o serie de alte facilitti
importante de intrare/iesire cum ar fi:
a. UART (Universal Asynchronous Receiver Transmitter) este un
port serial bidirectional destinat implementrii unui protocol
clasic de comunicatie asincron;
USART (Universal Synchronous Asynchronous Receiver
Transmitter) este un port similar, dar care permite implementarea
si a unui protocol sincron cu obtinerea unor viteze mai mari de
comunicatie;
SCI (Serial Communications Interface) este un circuit de tip
UART
mbunttit,
definit
si
utilizate
de
firma
Freescale(Motorola).
LIN (Local Interconnect Network) reprezint o implementare
particular a unui protocol de comunicatie asincron, utilizat n
industria de automobile ca o alternativ de mic vitez dar cu pret
sczut pentru magistrala si protocolul CAN (vezi mai jos).
4/1/2015

22

b. Porturi seriale sincrone dedicate - sunt destinate


transferului serial de date de mare vitez cu unele periferice
specializate (sisteme de afisare, convertoare analog-numerice,
etc.) sau care permit conectarea ntr-o retea de comunicatie.
- SPI (Serial Peripheral Interface) este un port serial sincron definit de
firma Motorola
- Microwire / Microwire Plus este o interfat serial bidirectional
sincron definit si utilizat de firma National Semiconductors
- I2C (Inter Integrated Circuits bus) este o interfat serial bidirectional
(pe numai 2 fire), dezvoltat de Philips, destinat aplicatiilor de 8 biti. Exist
si multe circuite "periferice" care sunt prevzute cu o astfel de interfat. Este
cunoscut si sub denumirea TWI (Two Wire Interface)
- CAN (Controller Area Network) proprietate intelectual a firmei Bosch,
foarte utilizat n Europa si Japonia, oarecum similar ca functionalitate lui
SAE J1850 care este utilizat n America de Nord (SAE -Society of Automotive
Engineers), este un standard (o magistral si un protocol) de comunicatie
serial sincron utilizat n industria de automobile, permitnd
interconectarea ntr-o retea a diverselor componente inteligente (senzori,
elemente de executie, indicatoare, etc.) omniprezente ntr-un automobil
modern.

4/1/2015

23

c. Conectivitate Ethernet/Web - implic existenta unor resurse


care s permit integrarea cu usurint ntr-o retea 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 propriuzis a controlerului, sau hardware (stiv hardware). Pe baza acestei
stive se poate realiza o conectivitate tip HTTP, FTP, STMP, POP3, etc.
d. Conectivitate USB - magistrala serial USB (Universal Serial Bus)
a fost creat pentru conectarea cu usurint a diverselor periferice la
un calculator PC (cu rolul de gazd - host).
Conexiunea permite si furnizarea tensiunii de alimentare. La ora
actual exist pe piat multe firme care ofer o gam larg de
microcontrolere cu conectivitate USB cu un pret de cost minim
pentru componentele hardware si software.
Exemple n acest sens ar fi firmele: Atmel, Microchip, Intel, Cypress,
ST, Infineon, s.a. Majoritatea sunt destinate realizrii unor periferice
USB si mai putine realizrii unui USB host.
4/1/2015

24

e. Conectivitate Wireless - se refer la existenta unor resurse


hardware si/sau software care s permit integrarea cu
usurint si la un pret de cost avantajos ntr-o retea de tip
wireless, pentru a face posibil, n final, implementarea unui
protocol (a stivei aferente protocolului).
Exemplele cele mai cunoscute de astfel de retele, protocoale
si stive sunt Bluetooth (IEEE 802.15.1) si Zigbee (IEEE
802.15.4).

4/1/2015

25

4/1/2015

26

f. Convertoarele Analog Numerice (CAN, ADC)


Convertoarele utilizate fac parte de regul dintr-un sistem de
achizitie de date, existnd si un multiplexor analogic cu mai
multe canale de intrare. Rezolutia disponibil este tipic de 8,
10 sau 12 biti, uneori cu precizia (rezolutia adevrat)
corespunztoare unui numr mai mic de biti.

4/1/2015

27

g. Convertoarele Numeric Analogice (CNA, DAC).


Cea mai rspndit tehnic de conversie numeric analogic
folosit este bazat pe modulatia n factor de umplere (PWMPulse Width Modulation).
Exist unul sau mai multe canale pe care se poate genera un
tren de impulsuri cu factor de umplere programabil (de la 0 la
100%).
Factorul de umplere este controlat cu o rezolutie de la 8 biti
sau 16 biti. Frecventa trenului de impulsuri este si ea
programabil, n limite largi.
La un microcontroler fr un sistem PWM dedicat, n acest
scop se poate utiliza, cu o flexibilitate mai sczut, sistemul de
timere/numrtoare si orice iesire numeric. Printr-o filtrare
exterioar relativ simpl, de tip trece jos (FTJ, Low Pass), se poate
obtine o tensiune de iesire proportional cu factorul de umplere.
Convertoare numeric analogice propriu-zise sunt mai
rar ntlnite.
4/1/2015

28

n graficul de mai jos, liniile verzi reprezint o perioad de timp


regulata. Aceast durat sau perioad este inversul frecvenei PWM.
Cu alte cuvinte, la un modul Arduino cu o frecvena PWM de
aproximativ 500Hz, liniile verzi ar masura 2 milisecunde fiecare.
Apelarea functiei analogWrite () se face pe o scar de la 0 la 255, astfel
nct, de exemplu, analogWrite (255) solicit un ciclu de 100% (mereu
deschis), iar analogWrite (127) are un factor de umplere de 50% (de
jumtate din timp).

4/1/2015

Conversia numeric analogica tip PWM

29

4/1/2015

Conversia numeric analogica tip PWM

30

h. Interfata pentru sisteme de afisare tip LCD (panou LCD)


n ultimul timp n familiile de microcontrolere deja consacrate sau
n familiile noi au aprut variante care posed un subsistem destinat
conectrii directe, cu utilizarea unui numr minim de componente
exterioare, unui sistem de afisare (un panou) de tip LCD (cu cristale
lichide). Interfata respectiv genereaz toate semnalele necesare pentru
comanda panoului LCD. Complexitatea sa este descris prin numrul
maxim de segmente LCD care pot fi controlate, fiind limitat n primul
rnd de numrul de conexiuni externe necesare (pentru un numr mare
de segmente oricum se folosesc tehnici de multiplexare).

4/1/2015

LCD RGB Backlight

31

Exemplu: Comanda Releu ARDUINO RELEU.ino

4/1/2015

32

Codul programului RELEU.ino

4/1/2015

33

4/1/2015

34

V MULUMESC
PENTRU ATENIA
ACORDATA !

4/1/2015

35