Sunteți pe pagina 1din 15

Introducere

INTEL n anul 1971 a anunat producerea primului microprocesor, acest


eveniment se considera momentul trecerii de la electronica implementat cablat la
electronica realizat programat. Primul microprocesor 4004 a fost conceput de M.E.
Hoff ca un procesor puin simplificat pentru a putea fi implementat, la vremea aceea,
pe un singur chip n siliciu. Iniial, microprocesorul nu a fost un computer-on-a-chip,
dei n timp a ajuns la acest stadiu; conceptul de microprocesor s-a dezvoltat i spre
alte implementri specifice: microcontroller, microcalculator, procesor de semnale
(DSP). Oricare din aceste circuite, pentru a deveni parte a unui sistem, impune un
proces de proiectare care se bazeaz n egal msur att pe componenta hardware
ct i pe componenta software.
Microprocesorul, sau celelalte variante ale sale, integrat ntr-un system aduc
acestuia acea performan, care atunci cnd este realizat de fiina uman este referit
ca inteligen. n general, microprocesorul este integrat ca unitate central de procesare
n sistemele digitale de calcul. Actual, aproape toate sistemele au o arhitectur de
sistem digital particularizndu-se n funcie de aplicare/utilizare.
Fora care a impus sistemele pe baz de microcontroller const n
programabilitatea unei componente de serie. Pentru sistemele la care o component de
serie, chiar programabil n software, nu duce la rezultatele cele mai bune au aprut
implementrile pe baz de circuite ASIC (Application Specific Integrated
Circuits). Spre deosebire de sistemele pe baz de microcontroller, unde funcionarea
dorit se obine, n software, printr-un anumit program, la sistemele pe baz de
circuite ASIC funcionarea dorit se obine prin structurarea hardwareului cu un
anumit program. Alegerea ntre o implementare pe baz de microcontroller, o
implementare pe baz de circuit ASIC sau una combinat depinde de aplicaia
respectiv i de cerinele impuse.
Privind evoluia istoric a operaiei de comand a unui proces putem contura
imaginea unui microcontroller. Un controller este un sistem folosit pentru a comanda
i a prelua stri de la un proces sau un aspect al mediului nconjurtor. La nceput un
3Coala

UTM 529.1.270.ME
Mod

Nr

Document

Semntura

Data

controller era un echipament de mari dimensiuni. Dup apariia microprocesoarelor


dimensiunile controller-elor s-au redus. Procesul de miniaturizare a continuat, toate
componentele necesare unui controller au fost integrate pe acelai chip. S-a nscut
astfel calculatorul pe un singur chip specializat pentru implementarea operaiilor de
control; acesta este microcontroller-ul. Un microcontroller este un circuit realizat pe
un singur chip care conine tipic:
unitatea central;
generatorul de tact (la care trebuie adugat din exterior un cristal de cuar
sau n aplicaii mai puin pretenioase, un circuit RC);
memoria volatil (RAM);
memoria nevolatil (ROM/PROM/EPROM/EEPROM);
dispozitive I/O seriale i paralele;
controller de ntreruperi, controller DMA, numrtoare/temporizatoare
(timers), covertoare A/D i D/A, etc.;
periferice.
Preul unui MC este redus din cauza cantitilor mari n care se fabric. Preul
mic al MC aduce cu sine i micorarea preului sistemelor de control (se micoreaz
inclusiv costul proiectrii). Diferenele dintre microprocesor i unitatea central a MC
se atenueaz n timp. Astfel, marii constructori de procesoare au realizat nite circuite
care s-ar putea numi super-microcontroller-e, aa cum sunt Motorola 68EC300,
INTEL 386EX sau IBM PowerPC 403GB, care sunt microcalculatoare pe un singur
chip. Cu un MC se poate realiza un controller integrat (Embedded Controller, EC).
Un controller integrat face parte dintr-un sistem construit cu un anumit scop, altul
dect calcule generale. Pe lng MC, un controller integrat are nevoie de hardware
suplimentar pentru a-i ndeplini funcia. Importana MC este dovedit incontestabil
de piaa care este n continu cretere.
4Coala

UTM 529.1.270.ME
Mod

Nr

Document

Semntura

Data

Sarcina tehnica
Proiectul dat din punct de vedere a prtii sale electronice, va fi realizat n baza
microcontrolerului ATmega32, scopul principal fiind realizarea unui sistem de
monitorizare a traficului rutier. La realizarea proiectului voi utiliza mediul de
proiectare

AVR-Studio

pentru

elaborarea

si

compilarea

programului

microcontrolerului. Pentru simularea circuitului voi folosi pachetul de programe


pentru simulare Proteus i schema electrica va fi realizat n Eagle.

Structura i principiul de funcionarea al microcontrolerului

1.

1.1.Arhitectura MCU ATmega32


ATmega32 este un microcontroler CMOS de 8 bii de mic putere bazat pe
arhitectura RISC AVR imbuntit.
Dispune de un set de 131 instruciuni i 32 de registre de uz general. Cele 32 de
registre sunt direct adresabile de Unitatea Logica Aritmetica(ALU), permind
accesarea a dou registre independente ntr-o singur instruciune. Se obtine astfel o
eficien sporit n execuie(de pn la zece ori mai rapide dect microcontrorelerele
conveionale CISC).
ATmega32 este un microcontroler RISC pe 8 bii realizat de firma Atmel.
Caracteristicile principale ale acestuia sunt:
- 32KB de memorie Flash reinscriptibil pentru stocarea programelor
- 2KB de memorie SRAM
- 1024B de memorie EEPROM
- dou numrtoare/temporizatoare de 8 bii
- un numrtor/temporizator de 16 bii
- conine un convertor analog digital de 10 bii, cu intrri multiple
- conine un comparator analogic
5Coala

UTM 529.1.270.ME
Mod

Nr

Document

Semntura

Data

- conine un modul USART pentru comunicaie serial (port serial)


- dispune de un cronometru cu oscilator intern
- ofer 32 de linii I/O organizate n patru porturi (PA, PB, PC, PD).
Structura intern general a controlerului este prezentat n Figura 1. Se poate
observa c exist o magistral general de date la care sunt conectate mai multe
module:
- unitatea aritmetic i logic (ALU)
- registrele generale
- memoria SRAM i memoria EEPROM
- liniile de intrare (porturile I/O Lines) i celelalte blocuri de intrare/ieire. Aceste
ultime module sunt controlate de un set special de registre, fiecare modul avnd
asociat un numr de registre specifice, Memoria Flash de program mpreun cu
ntreg blocul de extragere a instruciunilor, decodare i execuia comunic printr-o
magistral proprie, separat de magistrala de date menionat mai sus. Acest tip de
organizare este conform principiilor unei arhitecturi Harvad i permite
controlerului s execute instruciunile foarte rapid.
Modul Power-down salveaz coninutul registrelor, dar blocheaz
Oscilatorul, dezactivnd toate celelalte functii ale chip-ului pn la urmatoarea
Intrerupere Externa sau Reset hardware. In modul Power-save, timer-ul asincron
continu s mearg, permind user-ului s menin o baz de timp n timp ce restul
dispozitivului este oprit.
n modul Standby, Oscilatorul funcioneaza n timp ce restul despozitivului este
oprit. Acest lucru permite un start foarte rapid combinat cu un consum redus de
energie. n modul stanby extins(Extended Stanby Mode), att Oscilatorul principal
ct i timer-ul asincron continu s funcioneze.
Memoria flash (On-chip) permite s fie reprogaramat printr-o interfa serial
6Coala

UTM 529.1.270.ME
Mod

Nr

Document

Semntura

Data

SPI, de ctre un programator de memorie nonvolatil convenional, sau de ctre un


program de boot On-chip ce ruleaz pe baza AVR. Programul de boot poate folosi
orice interfata s ncarce programul aplicaie n memoria Flash de aplicaie.
ATmega32 AVR este susinut de o serie complet de instrumente de program i
de dezvoltare a sistemului, care include: compilatoare C, macroasambloare, programe
debug/ simulare etc.
1.2. Interfata seriala RS-485
Interfetele seriale sunt utilizate, in general, pentru a conecta circuite periferice la
microcontroller. Aceste interfete permit conectarea de dispozitive diverse, cum ar fi :
ceas de timp real, memorii nevolatile pentru stocarea unor parametrii, interfete cu
senzori. Standardul RS485 a fost conceput cu scopul de a extinde si imbunatati
posibilitatile de comunicatie pe o linie seriala. Dintre imbunatatirile avute in vedere se
pot aminti :
- cresterea distantei maxime de comunicatie ( aprox. 1 Km)
- cresterea imunitatii la zgomot
- posibilitatea realizarii unei comunicatii multipunct ( comunicatie in retea)
- utilizarea unui mediu ieftin de comunicatie
Transmiterea de date prin interfata RS485 consta intr-o transmisie seriala de
informatii la distante de pana la 1200m. Daca se respecta anumite specificatii tehnice
poate fi folosita si in medii industrial. Intr-o retea, numarul maxim de dispozitive care
se pot conecta la magistrala RS485este 32. Daca se folosesc repetoare, distanta si
numarul de dispozitive conectate la magistrala sunt nelimitate.
Acest protocol specifica urmatoarele :
- se utilizeaza un tronson de cablu bifilar torsadat, care are la cele doua
capeteterminatoare (rezistente) ; ambele linii se utilizeaza pentru transmisie, neexistind
fir demasa.
- codificarea datelor binare se face prin tensiuni diferentiale pozitive si
negativemasurate pe cele doua linii ale tronsonului ; tensiunea diferentiala
minimaconsiderata o data valida este de +/-200 mV.
- circuitele de emisie conectate pe acelasi tronson au iesiri de tip tri-state, pentru
a permite accesul multiplu, al mai multor echipamente, la acelasi tronson decomunicati
e ; accesul se face multiplexat in timp.
Comunicatiile digitale care implementeaza standardul RS-485 pot fi utilizate cu
succes pe distante lungi si in medii afectate de interferente. Pot fi conectati mai multi
receptori intr-o asemenea retea intr-o configuratie lineara. Acest standard ofera viteza
de transmisie a datelor de 35 Mbit/s pana la 10 m si 100 kbit/s pana la 1200 m. De
asemenea, poate acoperi distante relativ mari (pana la 1200 m). O regula spune ca
viteza masurata in bit/s inmultita cu viteza in metri nu ar trebui sa depaseasca 108.

7Coala

UTM 529.1.270.ME
Mod

Nr

Document

Semntura

Data

1.3.Elaborarea i descrierea schemei


Pentru execuia practic a proiectului, apare necesitatea de a elabora schema
electric a sistemului proiectat.

8Coala

UTM 529.1.270.ME
Mod

Nr

Document

Semntura

Data

1.4. Simularea dispozitivului n Proteus

Fig. 2. Schema electric pentru simulare n Proteus

2.Argumentarea alegerii tipurilor de elemente elecronice


2.1 Descrierea microcontrolerului

Fig. 3.Configurarea pinilor microcontrolerului ATmega32.

ATmega32 conine 32 de registre de uz general i 64 de registre speciale pentru


modulele I/O. Aceste registre sunt mapate la adrese din memoria RAM cuprinse ntre
0000h i 005Fh.

9Coala

UTM 529.1.270.ME
Mod

Nr

Document

Semntura

Data

2.2. Descrierea pinilor


Port A (PA7 .. PA0)
Port-ul A servete drept port de intrri analogice pentru Convertorul A/D.
Port-ul A servete de asemenea i ca un port bidirecional I/O de 8 bii, n cazul n
care Convertorul A/D nu este folosit. Pinii de port pot fi conectai optional la VCC
prin rezistori interni, (selectai pentru fiecare bit). Buffer-ele de ieire ale Portului A
au caracteristici de amplificare .
Port B (PB7.. PB0)
Portul B este un port I/O de 8 bii bidirecional cu rezistori interni (opionali).Bufferele de ieire ale Port-ului B au caracteristici de amplificare. Port-ul B indeplinete de
asemenea funcii speciale ale microcontrolerului ATmega32
Port C (PC7PC0)
Portul C este un port I/O de 8 bii bidirecional cu rezistori interni (opionali). Bufferele de ieire ale Port-ului C au caracteristici de amplificare. Daca interfaa JTAG (de
depanare) este activat, rezistorii pinilor PC5(TDI), PC3(TMS) si PC2(TCK) vor fi
activai, chiar dac are loc o resetare. Port-ul C ndeplinete de asemenea funcii ale
interfeei JTAG i alte funcii speciale ale ATmega32.
Port D (PD7PD0)
Portul D este un port I/O de 8 bii bidirecional cu rezistori interni conectai opional
la VCC (selectai pentru fiecare bit). Buffer-ele de output ale Port-ului D au
caracteristici de amplificare. Port-ul D ndeplineste de asemenea funcii speciale ale
ATmega32. Reset - Un nivel sczut la acest pin mai mare ca durata dect o valoare
prestabilit, va genera o initializare.
XTAL 1: Intrare pentru amplificatorul inversor al Oscilatorului;
XTAL 2: Iesire pentru amplificatorul inversor al Oscilatorului.
10Coala

UTM 529.1.270.ME
Mod

Nr

Document

Semntura

Data

10

AVCC: pin de alimentare pentru Port-ul A si Convertorului A/D. Trebuie conectat


extern la Vcc, chiar dac ADC nu este folosit. Dac ADC este folosit , ar trebui
conectat la Vcc printr-un filtru trece jos.
AREF : pinul de referin analogic pentru Convertorul A/D
2.3 Diagrame bloc

Fig.4. Diagrama Bloc a Microcontrolerului ATmega32

11Coala

UTM 529.1.270.ME
Mod

Nr

Document

Semntura

Data

11

Fig.5. Diagrama Bloc a arhitecturii Microcontrolerului ATmega32

12Coala

UTM 529.1.270.ME
Mod

Nr

Document

Semntura

Data

12

CONCLUZII:
n zilele de astzi trim ntr-o lume a automatizrii i a controlului de ctre
dispozitivele electronice, domeniul IT cunoscind o dezvoltare foarte mare, continua,
nu exista o zi fara sa apara un element nou pe piata mondena. Toate aceste
automatizri sunt realizate cu ajutorul microcontrolerelor. Ele sunt prezente peste tot:
la dispozitivele de afiare, la dispozitivele audio, n prelucrarea informaiei etc.
Odat cu evoluia microprocesoarelor, proiectarea dispozitivelor a devenit
accesibil practic tuturor doritorilor, deoarece a aprut accesul la diverse componente
electronice, despre care inainte nici nu se cunostea.
Prin realizarea acestui proiect am fcut un mare pas spre performanele n lumea
ingineriei, deoarece am neles c de i e destul de dificil de programat, este ceva
foarte interesant i foarte eficient pentru evoluia sistemelor de calcul.

13Coala

UTM 529.1.270.ME
Mod

Nr

Document

Semntura

Data

13

BIBLIOGRAFIE:

1. Calmcov I. ,,Conspectul de curs PSM


2. DataSheet AtMega32
3. http://www.atmel.com/
4. http://www.google.com/
5. http://www.cadsoftusa.com/

14Coala

UTM 529.1.270.ME
Mod

Nr

Document

Semntura

Data

14

ANEX

15Coala

UTM 529.1.270.ME
Mod

Nr

Document

Semntura

Data

15

Listingul programului:
/*
* Created: 28.11.2014 19:42:40
* Author: Andrei
*/
#define F_CPU 16000000UL
#define USART_BAUDRATE 19200
#define BAUD_PRESCALE (((F_CPU / (USART_BAUDRATE * 16UL))) - 1)
#define nrBenzi 6
#include <avr/io.h>
#include <util/delay.h>
#include <stdlib.h>
#include <avr/interrupt.h>
//6 benzi de circulatie
int banda[nrBenzi] = {};
int workingMode = 0;
int toggle = 0;
char strBuff[5];
void USART_Init(void){
UBRRL = (unsigned char)BAUD_PRESCALE;
UBRRH = (unsigned char)(BAUD_PRESCALE >> 8);
UCSRB = ((1<<TXEN)|(1<<RXEN)| (1<<RXCIE));
}
void USART_SendByte(uint8_t u8Data){
while((UCSRA &(1<<UDRE)) == 0);
UDR = u8Data;
}
void USART_putstring(char* StringPtr){
while(*StringPtr != 0x00)
{
USART_SendByte(*StringPtr);
StringPtr++;
}
}
ISR(USART_RXC_vect)
{
while(!(UCSRA & (1<<RXC)));
switch(UDR)
{
case '0': workingMode = 0; USART_putstring("Mod de lucru 0;\r");
resetArrayValue(&banda); break; //mode de lucru 1, raporteaza banda pe care trece masina
case '1': workingMode = 1; USART_putstring("Mod de lucru 1;\r");
resetArrayValue(&banda); break; // mode de lucru 2, aduna numarul de masini si raporteaza la
cerere
case 'r': sendReport(); break;
}
return UDR;
}
void resetArrayValue(int *buff)
{
for(int i=0;i<nrBenzi;i++)
{
buff[i] = 0;
}
}
void sendReport()

16Coala

UTM 529.1.270.ME
Mod

Nr

Document

Semntura

Data

16

{
for(int i=nrBenzi-1;i>=0;i--)
{
itoa(banda[i],strBuff,10);
USART_putstring(strBuff);
if((i-1)<nrBenzi)
USART_SendByte(',');
}
USART_SendByte(';\r');
resetArrayValue(&banda);
}
int main(void)
{
DDRB = 0x60; //pe portul b
PORTB = 0xC0; //pull up pe pinii 7 si 8
DDRA = 0x0;
PORTA = 0xFF; //pull up pe PA
DDRC = 0x0;
PORTC = 0xFF; //pull up pe PC
DDRD = 0x0;
PORTD = 0xFF;
USART_Init();
sei();
int portBVal = 0;
USART_putstring("Mod de lucru 0;\r");
USART_putstring("Moduri disponibile:\r0 - raporteaza live;\r1 - colecteaza date;\r");
while(1)
{
portBVal = PINB;
for(int i=0;i<nrBenzi;i++)
{
if( ((portBVal>>i)&1 == 1) )
{
toggle |= 1<<i;
}
else if( (toggle>>i)&1 == 1)
{
if(workingMode == 1)
{
banda[i]++;
}
else
{
banda[i]++;
if(banda[i] % 2 == 0)
{
itoa(i,strBuff,10);
USART_putstring(strBuff);
USART_putstring("\r");
banda[i] = 0;
}
}
toggle &= ~(1<<i);
}
}
_delay_ms(50);
}
}

17Coala

UTM 529.1.270.ME
Mod

Nr

Document

Semntura

Data

17

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