i.e.p-proiect mcu

Upload: torjoc-florin

Post on 01-Mar-2016

226 views

Category:

Documents


0 download

DESCRIPTION

Proiect interfata grafica cu microcontroler

TRANSCRIPT

Interfee i Echipamente Periferice

Interfee i Echipamente Periferice10

Interfee i Echipamente PerifericePROIECTTorjoc Dumitru-Florin 1731BUniversitatea din Oradea PROIECT

CUPRINS

TEMA PROIECTULUI

1. S se proiecteze un sistem cu microprocesor interfaat cu: 45 afiaje cu 7 segmente; 24 LED-uri; 32 afiaje matriciale; o tastatur cu contacte mecanice cu 32 de taste.

2. S se proiecteze un protocol de comunicare ntre sistemul cu microprocesor i un calculator extern;3. S se realizeze comunicatia serial la o vitez de 2400 bit/s4. Scrierea unui program de comand a afisajelor luminoase i a baleerii tastaturii prin ntreruperi;

SISTEMUL CU MICROPROCESOR

Pentru sistemul de comand al afiajelor i baleierii tastaturii se va utiliza un sistem cu microcontroller Microchip familia PIC16F (PIC16F886) care dispune de 14KB memorie flash , 368 B ram , 256B EEPROM , sau oricare altul care s respecte configuratia pinilor i tensiunea de alimentare 5V.Acest microcontroller dispune de 2 canale CTC pe 8 bii i unul pe 16 bii , un port serial , frecventa de functionare este de 20 MHz , majoritatea instructiunilor au nevoie de 4 perioade de tact ; comunicatia pe portul serial se face foarte uor microcontrolerul avnd incorporate modulul USART capabil de o viteza foarte mare.Datorita faptului c microcontrolerul nglobeaz toate performanele unui microsistem cu procesor este mult mai usor de proiectat o intefa cu ultilzatorul.Acest sistem interfa cu utilizatorul este cumpus din 4 blocuri i anume:1. Blocul de control/comunicare cu microcontroller (creierul interfeei, permite controlul de la distan)2. Tastatura cu 32 de butoane folosit pentru comand local.3. Blocul de afiaje matriceale 7x54. Blocul de fiaje numerice 7+1 segmente + leduriSchema bloc cu microcontroller se afl n anex.

INTERFAAREA SISTEMULUI

Pentru interfaarea sistemului cu microprocesor am ales utilizarea afisoarelor cu leduri super-luminoase care proezinta un consum de current mic , ins sunt capabile de o luminozitate mare economisind putere.Comanda afioarelor se face in mod multiplexat , doar anumite segmente/leduri vor arde la un moment dat afisoarele fiind conerctate n mod matriceal, astfel putem comanda un numar foarte mare de afisoare cu un numar mic de linii de date.Pentru salvarea datelor pe parcursul functionarii sistemului interfaat se vor utilize register de deplasare pe 8 biti comandate serial gen 74HC595 care sunt capabile de a livra 30-35 mA pe ieire , ceea ce este sufficient pentru aprinderea unui led (2-3 mA) in mod multiplexat.Partea de putere care comand catodul afiajelor (7+1 segmente /leduri/ 7x5 matrice led) este realizat utiliznd tranzistoare mosfet canal n IRLML2502 capabil de a livra un current de 4A la maxim 20V.Curentul debitat de tranzistoarele mosfet este sufuient pentru a putea aprinde toate ledurile active intr-o intrerupere.

DESCRIEREA CIRCUITELOR DE COMAND

Circuitul registru de deplasare 74HC595

Exist dou tipuri de regitrii de deplasare: de intrare i de ieire. Regitrii de intrare ncarc datele paralel, prin intermediul a 8 linii, i apoi le trimite serial prin intermediul a dou linii ctre microcontroler. Regitrii de ieire opereaz n direcie opus: primesc date serial i la un semnal pe linia latch, transform datele n date paralele. Regitrii de deplasare sunt folosii n general pentru a mri numrul de intrri ieiri ale unui microcontroler. Ei nu prea mai sunt folosii pentru c microcontrolerele moderne au un numr mare de linii intrare ieire.Regitrii de deplasare de ieire transform datele seriale n date paralele. Pe fiecare front cresctor al tactului, registrul de deplasare citete valoarea de la linia de date, o memoreaz ntr-un registru temporar, apoi repet acest ciclu de 8 ori. La un semnal de la linia latch, datele sunt copiate din registrul de deplasare n registrul de intrare, apoi datele sunt transformate din date seriale n date paralele.

Integratul 74HC595 este capabil de a lucre la o frecventa de pina la 100 MHz , iar posibilitatea de a fii utilizat n cascad ne ajut la transmisia datelor mult mai economic, fiecare integrat detine o iesire Q7 pentru cinectare in cascada. Fiecare ieire al acestuia este capabil de a livra un exces de 35 mA sificent pentru aprinderea ledurilor superluminoase n mod multiplexat.

Tranzistoarele mosfet IRLML2502

Pentru a putea livra curentul necesar afiajelor cu leduri se va utilize tranzistoare mosfet canal N gen IRLML2502 capabile de a livra un current de 4A la 20V.

Microcontroller din familia PIC16F/18F

Controlul dispozitivelor de afiare i citirea tastaturii este realizat de un microcontroller PIC din familia 16F sau 18F care au un numr de 28 pini , i se respect configuraia logic a pinilor.Fie microcontrolerul PIC16F886 care dispune de o memorie flash(memorie de program) de 14KB , 368B ram , 256B eeprom , vitez de 5 MIPS , comunicaie periferic USART(cu ntreruperi) , timere 2 x 8-bit, 1 x 16-bit , teniune de operare 2 5,5V.Cu ajutorul acestui cip putem controla toat interfaa i n acelasi timp comunica cu un calculator prin RS323 .n general un microcontroller este capabil de a comanda fara problem o astel de interfa.

DESCRIEREA CIRCUITELOR DE AFIARE

Afiarea datelor de ctre echipamentul de interfaare cu omul se va face cu ajutorul a 45 afiaje 7+1 segmente , 24 leduri i 32 afisoare matriceale cu 7x5 led-uri.Dispozitivele de afiare au n construcia lor led-uri superluminoase de consum mic 2-3 mA / led ceea ce face posibil actionarea lor direct de ctre circuitul registru de deplasare 74HC595.Afiorul cu 7+1 segmente SC08-11SRWA este cu catod comun , curentul consumat de un led este de 3.75mA deci un consum total de 30mA pe afisor in mod normal , dar n comanda multiplexat avem nevoie de 30 mA x 8 = 240mA pentru ca sunt 8 afisoare care trebuiesc comandate perioada de functionare este de 1/8.Astfel avem : 0.5V cdere de tensiune pe tranzistorul mosfet 2V cdere de tensiune pe led 20-30 mA current necesar aprindere led in mod multiplexatRezult c rezistenta din anodul fiecarui led va avea o valoare de :

Curentul debitat de 1 mosfet :8(leduri/segment) x 30mA(current/led multiplexare) x 5(afisoare) = 1200mA

Dispozitivele de afiare matriceal TA07-11SWA cu anodul pe coloane este la fel de eficient din punct de vedere al consumului de energie ca i afisoarele cu 7 segmente , consumul unui led din cele 35 (7x5) este de numai 1mA , astfel n multiplexare consumul va fii de 8 mA/led , rezult 8 mA x 35 = 280mA consum pe afisaj . Afiajele matriceale vor fii baleate pe linii rezult ca necesarul de current debitat de 1 mosfet este de: 5(leduri aprinse/linie/afisor) x 8mA (current/led multiplexare) x 32 afioare = 1280mA Astfel avem : 0.5V cdere de tensiune pe tranzistorul mosfet 2V cdere de tensiune pe led 20-30 mA current necesar aprindere led in mod multiplexatRezult c rezistena din anodul fiecrui led va avea o valoare de :

Datorit faptului c tranzistoarele mosfet canal N comand att afisoarele cu 7+1 segmente ct i afioarele matriceale un mosfet va debita la un moment dat un current de: 1200 mA +1280 mA = 2480mA sau rotunjit 2.5A

Aceast interfa cu utilizatorul va avea nevoie de o sursa de current continuu care s poat debita 5V la 3A (2.5A afisajele 0.5A microcontroller+comunicaie) , avantajul ei este un consum de energie mic , aporximativ 20W cu tot cu pierderile sursei de alimentare.Dac se utilizau afioare de putere mai mare se utilizau afisoare cu anod comun , la ieirile registrelor de deplasare se conectau tranzistoare mosfet canal N iar la anozii comuni tranzistoare canal P (8 la numar).

PROTOCOL DE COMUNCARE(Cu un calculator pe portul serial)

Comunicarea acestui dispozitiv complex cu un calculator aflat la distan se poate face uor datorit capabilitaii sistemului de a comunica pe un port serial USART , acesta fiind convertit din semnal TTL n semnal RS232 capabil de transmisie pe distane de 1-3 metrii , sau standard RS485 capabil la distane mult mai mari (zeci de metrii).Pentru a putea nelege datele ce se vehicul ntre calculatorul care trimite comenzi la dispozitivul de interfa avem nevoie de a ne creea/stabili un protocol de comunicare care s poat fii neles de ambii participani.Voi alege creerea unui protocol simplu cu bit de start , CRC pe 2 biti i un bit de stop.Bitul de start i stop vor fi alei din tabelul ASCII caractere de comand , i vom avea:START(STX)DATACRCHCRCLSTOP(ETX)

CRC-ul se face doar pe cmpul DATALa rndul su cmpul DATA este compus din :ADRSELLUNGIMEDATA

ADR - octetul care se refer la adresa afisorului/tastatur SEL - octet care specific linia selectat care urmeaz a fii modificat LUNGIME se specific n binar numrul de octei coninui in cmpul DATA DATA cmpul de octei cu data util Dup modul de adresare avem :ADR(HEX)Aciune

0x01Selectarea dispozitivului de afiare cu 7+1 segmente + led-uri

0x02Selectarea dispozitivului de afiare cu matriceal

0x03Comanda tastaturii

0xFFComenzi opionale la nivel de program

Dup modul de selecie :SEL(HEX)Aciune

0x01 0xF0Selectarea liniei care dorete s fie modificat a dispozitivului de afiare selectat.

0xFFDac se dorete actualizarea ntregului panou de afiare selectat , se va modifica toate segmentele n funcie de dimensiunea cmpului LUNGIME

OBS.: n cazul comndrii tastaturii de la distan cmpul SEL i LUNGIME nu vor fii utilizai.Comenzile opionale la nivel de program pot fii : modificarea vitezei de transmisie pe magistrala USART , viteza de actualizare a informaiilor , efecte de tranziie a textului afiat , etc.

-INIIALIZARE PORTURI-INIIALIZARE TIMERE-CITIRE OCTETI DE CONFIGURARE DIN EEPROMN = 0

-INIIALIZM USART PE BAZA CONFIGURAIEI DIN EEPROM-ALTE INIIALIZRI PE BAZA CONFIGURATIEI DIN EEPROM

TRECEM AFIAJELE N MOD DE TEST PENTRU 5 SECUNDE

AVEM MESAJ DE AFIAT(EEPROM)?

FANION MESAJ = 0

DA

FANION MESAJ = 1?

NU

SALVEAZ MESAJE DIN EEPROM N BUFFER-UL DE AFIARE

DA

AVEM INTRERUPERE?

NCRCARE REGISTRE AFISOARE CU 7+1 SEGMENTE CU DATA DIN BUFERUL DE AFIARE N FUNCIE DE N

N+=N+1

NCRCARE REGISTRE AFISOARE MATRICEALE CU DATE DIN BUFFERUL DE AFIARE N FUNCIE DE N

CITIRE TASTE DE PE COLOANA N

N = 7 ?

N=0

EXECUT COMANDA ATAAT TASTEI APSATE

NU

NU

DA

START

FANION TASTA =1 ?

DA

NU

FANION TASTA = 0

DA

NU

SALVEAZ MESAJE DIN BUFFER USART N BUFFER-UL DE AFIARE

Program principal

START

NTRERUPERE DE LA CTC?

NTRERUPERE DE LA USART?

NU

FANION NTRERUPERE = 1

NU

DA

STX OK?

SALVEAZ MESAJUL N BUFFERUL USART

CALCULEAZ CRC

CRC OK?

MESAJ 7+1 SEGMENTE ?

MESAJ MATRICE LED?

COMAND TASTATUR?

COMANDPROGRAM?

FANION MESAJ = 1PREGTETE MESAJUL PENTRU COPIERE

FANION MESAJ = 1PREGTETE MESAJUL PENTRU COPIERE

FANION TASTA = 1PREGTETE CODUL TASTEI PENTRU EXECUTIE FUNCTIE ATAAT

EXECUT COMENZI LA NIVEL DE PROGRAM

DA

TRIMITE ACK

DA

DA

DA

DA

NU

NU

NU

NU

TRIMITE ESC

NU

Tratarea ntreruperilor