Documente Academic
Documente Profesional
Documente Cultură
Privire general
Numrtor RESET
Ceasul de gard este un timer care poate fi programat s numere un tact care provine de la un registru de
prescalare. Dac numrtorul ajunge la capt, semnalul de depire declaneaz un RESET al circuitului.
Este sarcina programatorului s scrie n registrul de control un cuvnt care va reiniializa numrtorul. n
cazul n care MC nu mai este sub controlul programului, el va fi resetat de ctre ceasul de gard
8.Generator PWM
Registru de prescalare
T1
Factorul de umplere
este T2/T1 BUS INTERN
Modulaia impulsurilor n lime (Pulse Width Modulation) are multe aplicaii, mai ales n comanda motoarelor
de curent continuu sau a surselor de alimentare. Din acest motiv, unele MC includ n structura lor un
modulator PWM ca interfa distinct. Un semnal PWM arat ca n figura de sus, stnga.
Un canal PWM este reprezentat n figura de sus, dreapta. Frecvena de repetiie este programat cu un registru
de prescalare care genereaz un ceas pentru un numrtor de 8/16 bii. Coninutul numrtorului este
comparat cu cel al registrului PWM, dac este mai mare ieirea PWM este LOW, dac este mai mic sau
egal PWM este HIGH. Factorul de umplere poate fi astfel modificat ntre 0 i 255/255.
Module interne cu funcii de
comunicaii
9.Port serial asincron
Cereri de ntrerupere ctre
UC
SCK +1
Port I/O
0
/SS 1
2
MC slave MC slave
Cu portul SPI (Serial Peripheral Interface) se poate realiza o comunicaie sincron simpl, folosit de regul pentru a transfera
date ntre circuite pe aceeai plac cu MC. Un transfer bidirecional necesit 3 pini, unul dintre ei fiind alocat ceasului de
transmisie generat de masterul SPI. Cu SPI se pot realiza transferuri i ntre MC. Transferurile pot fi full duplex.
Numai un master SPI poate iniia un transfer. Masterul scrie un octet n registrul de transmisie SPI de undele datele merg ntr-un
registru de deplasare care le serializeaz i le transmite cu ceasul de transmisie. Transmisia se termin dup 8 tacte. n slave
datele intr n registrul de deplasare cu tactul de recepie, acelai cu cel de transmisie. Cnd au intrat 8 bii, caracterul intr
n registrul de date. Pentru a se evita erorile de vitez (sau de suprascriere)(Overrun) trebuie ca octetul din registrul de date
s fie citit nainte ca un alt octet s fie transmis din registrul de deplasare.
Pinii au urmtoarea semnificaie:
-SCK (Serial Clock) este ieire de tact pentru sincronizare;
-MOSI (Master Output Slave Input) este ieirea serial pentru MASTER;
-MISO (Master Input Slave Output) este intrarea serial pentru MASTER;
-/SS (Slave Select) selecteaz circuitul SLAVE i protejeaz MC dac dou circuite sunt master. Acest semnal activ dezactiveaz
la cellalt port SPI modul master.
11.Interfaa CAN (Controller Area Network)
Magistrala
Protocolul CAN a fost definit de
intern
BOSCH n 1991 pentru utilizarea
pe o magistral la autoturisme, Circuit pt. comanda Registre
unde s ndeplineasc condiii interfeei de
specifice: procesare n timp real, comand,
fiabilitate ntr-un mediu perturbat stare i
i pre mic. Serializare/ Gestionarea date
La transmisia CAN datele sunt deserializare erorilor
codificate pentru a fi trimise pe Magistrala
linie n cod NRZ, iar la fiecare CAN
grup consecutiv de 5 bii cu Transceiver
aceeai valoare logic se
Generare CRC
introduce un bit (deci o tranziie) TxEN Tx
care se extrage la decodificare. Registre de deplasare
Nivelele pe linie sunt numite
Inserare (recunoatere adres) MUX
dominant (0) i recesiv (1).
Transferul de date prin CAN se face cu Rx
cadre (blocuri de date) care sunt Introducerea biilor de
citite de toate dispozitivele VREF (Vcc/2)
sincronizare
cuplate la CAN dar sunt reinute Wakeup VREF
de acestea doar acelea care conin
adresa dispozitivului.
Fiecare dispozitiv CAN recepioneaz toate cadrele i dispune de un filtru de acceptan care selecteaz cadrul cu adresa proprie a
dispozitivului. n configuraie se pot aduga noi dispozitive, cu adres proprie, fr nici un efort. Dac cadrul recepionat este eronat,
toate dispozitivele CAN trimit un cadru de control care indic o eroare. Fiecare cadru eronat incrementeaz n dispozitiv un numrtor
de erori (care este decrementat de cadrele valide). Un numr de erori mai mare de o anumit limit produce decuplarea dispozitivului de
la magistrala CAN
Module interne de legtur cu
procesele analogice i cu afiarea
12. Convertorul A/D
Circuitul analogic de intrare const ntr-un multiplexor analogic i un convertor A/D de 8-10-12 bii cu aproximaii succesive (sunt cteva
MC cu convertor cu integrare, COP8). Tensiunea de referin pentru convertor i masa analogic sunt conectate prin pini speciali.
Convertorul este controlat de registrul de control, care selecteaz i canalul de conversie. Terminarea conversiei este semnalizat cu
un bit ACK tot n registrul de control, iar rezultatul conversiei este stocat n registrul de date. O conversie poate fi declanat n 3
feluri:
-start n operare normal i reintrare n operare normal;
-start n operare normal apoi intrare n mod inactiv (Idle);
-intrare n mod inactiv i declanarea unei conversii din exterior printr-un pin exterior.
De regul modul de conversie poate fi:
-conversie singular
-conversie continu
Decl.
Multiplexor conversie
Cu registrul de control se
ADC0
analogic poate programa:
ADC1 Convertor Analog
ADC2 -selecia canalului analogic
Digital
ADC3 dorit de la intrare la convertorul AD;
-se poate programa ca o
conversie s fie declanat de pinul
Selecie extern ;
START ACK Date
canal -se poate declana o
conversie;
Registru de control Registru de date -conine un bit care
semnaleaz c s-a terminat
conversia, care poate solicita o
cerere de ntrerupere;
BUS INTERN
13. Interfaa cu LCD
Generare matricial
Prin metodele de programare defensiv se poate mbunti mult sigurana n funcionare, fr nici un hardware
suplimentar. Cteva din cele mai eficiente metode sunt:
-rencrcarea periodic a registrelor care comand pinii de I/O i a celor mai importante registre. Pinii de I/O sunt
legtura MC cu exteriorul, de aceea ei sunt supui perturbaiilor. Readucerea lor la nivele corecte micoreaz
probabilitatea ca o perturbaie s se propage n circuit.
-citirea repetat a semnalelor de intrare micoreaz riscul unei citiri greite. De exemplu citirea unui pin care este legat
la o tast de 3 ori la rnd la intervalul de timp normal pentru 3 citiri succesive, dac s-a citit aceeai valoare,
elimin posibilitatea unei perturbaii.
-dac exist locaii n RAM nefolosite, dup fiecare etap de rulare a programului se scrie un bit n RAM.. nainte de
rularea unei rutine critice se verific valoarea stocat n RAM i rutina se execut doar n cazul n care valoarea
din RAM este corect.
-dac ntr-o aplicaie exist memorie nefolosit, aceasta se umple cu instruciuni de salt ntr-un loc cunoscut pentru ca
un salt neprevzut n memorie datorat unei perturbaii s fie anulat de saltul n locul cunoscut, cu o anumit
probabilitate.
Exemple de sisteme cu MC realizate la proiect
Exemple de sisteme cu MC realizate la proiect
Mediu de dezvoltare pentru MCS 51
Franklin Software
Exemplu de programare MCS 51
ORG 8000h
nop
mov P0,#0Fh
nop
mov P0,#00h
end
Mediu de dezvoltare pentru ATMEL RISC
AVR STUDIO
Mediu de
dezvoltare
pentru PIC
MPLAB
Arduino
Cel mai simplu de construit un sistem pe baz de microcontroller este cu
prin utilizarea modulelor Arduino. Exist doi mari furnizori:
www.robofun.ro
www.teguna.ro
Se pot cumpra o mare diversitate de sisteme de dezvoltare, traductori i
elemente de execuie.
void loop(){
//rotate a specific number of
degrees
rotateDeg(360, 1);
delay(1000);
rotateDeg(-360, 0.1); //reverse
delay(1000);
//rotate a specific number of
microsteps (8 microsteps per
step)
//a 200 step stepper would take
1600 micro steps for one full
//revolution
rotate(1600, 0.5);
delay(1000);
rotate(-1600, 0.25); //reverse
delay(1000);
}
Proiect de diplom cu Arduino
Microcontroller
Convertor
Reea Analog
Numeric Unitate prelucrare date
Releu comandat de
microcontroller