Sistemele de Monitorizare a Gazelor
Lista figurilor………………………………………………………………………………………pag
Lista tabelelor…………………………………………………………………………………………………………………..pag
Lista acronimelor………………………………………………………………………………………………………………pag
Introducere……………………………………………………………………………………………………………………….pag
Capitolul 1. Noțiuni teoretice privind sistemele de monitorizare a gazelor
Programul OrCAD Capture…………………………………………………………………..…pag
Programul OrCAD Layout………………………………………………………………………pag
Generalități privind realizarea cablajului imprimat…………………………………………..…pag
Tehnologia realizării cablajelor imprimate…………………………………………………..pag
Tehnologia echipării cablajelor imprimate…………………………………………………..pag
Noțiuni generale privind transmisia Ethernet………………………………………………..….pag
Cipul Ethernet W5100 și Interfața SPI………………………………………………………pag
Noțiuni generale despre microcontrolere……………………………………………………..…pag
Placa de dezvoltare Arduino Ethernet…………………………………………………..…….pag
Microcontrolerul ATmega328………………………………………………………………..pag
Capitolul 2. Proiectarea sistemului de monitorizare a scurgerilor de gaze
2.1 Schema electronică de principiu realizată în programul OraCAD Capture – funcționare………..pag
2.2 Proiectarea PCB în programul OrCAD Layout…………………………………………………..pag
Capitolul 3. Senzorii
3.1 Prezentare generală………………………………………………………………………………pag
3.1.1 Senzorii din seria MQ………………………………………………………………. …pag
3.2 Senzorul de gaze inflamabile și fum MQ-2………………………………………………… …..pag
3.3 Senzorul de monoxid de carbon MQ-7………………………………………………. …………pag
Capitolul 4. Realizarea sistemului de monitorizare a scurgerilor de gaze
4.1 Realizarea cablajului imprimat…………………………………………………………………..pag
4.2 Specificații privind echiparea PCB cu componente………………….………………………….pap
Capitolul 5. Organigrama software-ului
Descriere a principiului de funcționare………………………………………………………………pag
Concluziile proiectului……………………………………………………………………………….pag
Perspective de dezvoltare…………………………………………………………………….……….pag
Bibliografie…………………………………………………………………………………………. pag
Anexe…………………………………………………………………………………………………pag
Lista figurilor
Fig. 1 Schema bloc a proiectului
Fig. 1.1 Caseta de dialog New Project
Fig. 1.2 Selecția librăriilor de componente
Fig. Moduri de montare a componentelor pe cablajul imprimat
Fig. Schema bloc de funcționare a unui senzor
Fig. Conectarea tipică a unui senzor MQ
Fig. Caracteristicile de sensibilitate ale MQ-2
Fig. Dependența de temperatură și umiditate
Fig. Caracteristicile de sensibilitate ale MQ-7
Fig. Stabilirea unei conexiuni TCP
Lista tabelelor
Fig. Grosimi uzuale ale circuitului imprimat
Fig. Distanța între conductoare în funcție de tensiunile de lucru
Fig. Formatul cadrului Ethernet
Fig. Stările utilizate în automatul cu stări finite pentru controlul TCP
LISTA DE ACRONIME
ADC – Convertor analog-digital
ALU/UAL – Arithmetic Logic Unit
ASCII – American Standard Code for Information Interchange
ASM – Limbaj de asamblare
AVR – Arhitectură RISC, pe 8 biți, Harvard, modificată
CAD – Computer Aided Design
CAN – Controller Area Network
CPU/UCP – Central Processing Unit
CISC – Calculator cu set complex de instrucțiuni
CSMA/CA – Carrier Sense Multiple Access With Collision Avoidance
DC(CC) – Direct Current (curent continuu)
EEPROM – Electrically Erasable Programmable Read-Only Memory
I/O – Input/Output
JTAG – Joint Test Access Group (Port standard de testare și depanare)
LAN – Local Area Network; Rețea locală de calculatoare
LED – Lightning Emitting Diode
LIN – Local Interconnect Network
MC – Magistrală de comunicație
M(L)SB – Most (Least) Significant Bit
MIPS – Million Instructions Per Second
MOSFET – Metal-Oxide-Semiconductor field-effect Transistor
PC – Personal Computer
PCB – Printed Circuit Board; Cablaj imprimat
PDIP – Plastic Dual In-line Package.
PWM – Pulse-Width Modulation; Modulația impulsurilor în durată
RF – Radio Frequency
RISC – Reduced Instruction Set Computing
ROM – Read Only Memory
RX – Receive
SMD – Surface Mounted Device
SOC – System On Chip
SRAM – Static Random Access Memory
SPI – Serial Peripheral Interface; Interfață periferică serială
SRAM – Static Random Access Memory.
TCP/IP – Transmission Control Protocol (Internet Protocol Suite); Model de rețea și set de protocoale folosit pentru Internet și rețele de calculatoare similar
THT – Trough Hole Technology
TTL – Transistor – Transistor Logic
TX – Transmit
Introducere
Progresul tehnologic din ultimele decenii a făcut posibilă apariția multor inovații care nu doar ne facilitează viața de zi cu zi, ci ne ajută și în vederea menținerii siguranței în propria locuință, ceea ce este și obiectivul lucrării de față. Așadar, monitorizarea distribuției gazelor naturale nu poate fi ignorată, ba chiar necesită în prezent o atenție deosebită.
Automatizarea unui sistem care monitorizează fluxul de gaze naturale cu care este aprovizionată o locuință aduce două mari avantaje, primul fiind bineînțeles, siguranța imobilului, iar cel de-al doilea privind scurgerile de gaze în exces, implicit costul ridicat la factura emisă lunar.
Sistemul propus în lucrarea de față oferă posibilitatea monitorizării în timp real a concentrației de gaze combustibile, fum, monoxid de carbon și temperaturii din propria locuință prin intermediul accesării foarte ușoare, la distanță, a datelor transmise prin Internet.
Pentru partea software am folosit limbajul de programare C++ în care se folosesc doar comenzile de bază, iar pentru implementarea codului am folosit mediul de dezvoltare Arduino Software 1.6.5 (IDE).
Partea hardware conține următoarele componente principale:
Placa de dezvoltare Arduino Ethernet ce conține microcontrolerul ATmega328;
Doi senzori, de gaze inflamabile și fum, respectiv de monoxid de carbon;
Plăcuța de cablaj imprimat pe care sunt plantați senzorii, conectată placa de dezvoltare.
Placa de dezvoltare Arduino Ethernet ce conține microcontrolerul, primește date de la senzori, le analizează și ia decizii pe baza cărora trimite înapoi date, în funcție de cum dorim să îl programăm. Fiecare model de placă conține un număr de pini digitali și unul de pini analogici, corespunzător intrărilor și ieșirilor. Pinii digitali sunt folosiți pentru a controla sau primi date de la aparate care au doua stări – oprit sau pornit, 0 sau 1, utili în acest caz pentru a opri sau porni sistemul. Pinii analogici sunt folosiți pentru a citi date de la senzori care oferă date nu doar cu două stări, ci o multitudine de poziții intermediare între 0 și 1, foarte utili pentru citirea concentrațiilor de gaze dintr-o cameră. În final, întregul circuit va comanda un modul cu releu, care va fi închis sau deschis in funcție de datele transmise.
Modulul de Ethernet preia datele și le transmite mai departe către calculator sau telefon mobil, prin Internet, folosind protocoale de comunicații de tip TCP și CSMA/CD care asigură un transfer rapid, evitând posibile coliziuni. Modulul folosit conține cipul W5100 al firmei producătoare Wiznet.
În continuare se va detalia schema bloc a circuitului, cât și fiecare dispozitiv component în parte.
SCHEMA BLOC A PROIECTULUI
Capitolul 1. Noțiuni teoretice privind sistemele de monitorizare a gazelor
Aspecte teoretice ale realizării schemelor electronice și cablajelor utilizând OrCAD
Primul pas în realizarea unui dispozitiv electronic este proiectarea circuitului imprimat. Acest lucru se face cu ajutorul unor medii de proiectare, în cazul nostru programul OrCAD. Aceste este un software din familia Computer Aided Design (CAD) creat pentru a ajuta inginerii electroniști în toate etapele necesare dezvoltării unui modul electronic, începând cu proiectarea, simularea, realizarea schemei electrice și în final realizarea cablajului imprimat al acestuia.
Am utilizat următoarele blocuri software ale programului OrCAD:
– Capture: folosit pentru a desena schema electrică a echipamentului electronic;
– Layout: folosit pentru proiectarea cablajului;
– PSpice: permite simularea modului în care funcționează schema electronică.
OrCAD Capture oferă o interfață intuitivă și foarte multe facilități care au permis utilizarea OrCAD pe scară largă în industria electronică pentru desenarea, simularea schemelor electronice și crearea documentației aferente.[1]
Toate fișierele cu informații legate de proiect se salvează cu extensia .OPJ și anume: schema electrică, bibliotecile utilizate (fie implicite, fie create), fișierele generate (verificarea legăturilor electrice, netlist – fișierul listă de legături, lista de componente). Astfel putem privi proiectul ca un tot unitar.
Fereastra Session Log se activează la deschiderea oricărui proiect și permite vizualizarea acțiunilor utilizatorului (comenzile executate) precum și vizualizarea erorilor de proiectare care apar.
Înainte de generarea fișierului “netlist”, este posibilă selectarea utilitarului ITC (Intertool communication), care permite o interfațare între cele două programe (Capture și Layout). Această facilitate permite o manevrabilitate deosebită a programului și dă utilizatorului un grad mai mare de libertate în proiectare. [2]
Etapele proiectării cablajului imprimat
Etapele de bază urmate pentru proiectarea cablajului imprimat sunt următoarele:
1. Se deschide programul OrCAD Capture și se alege un proiect PCB din meniul PC Board wizard.
2. Se realizează schema circuitului electronic cu programul OrCAD Capture.
3. Se utilizează programul OrCAD Capture pentru generarea listei de legături (Layout list) și se salvează lista cu extensia .MNL.
4. Se deschide programul OrCAD Layout și se selectează o tehnologie PCB pentru placa de circuit imprimat (fișier cu extensia .TCH).
5. Se salvează proiectul de cablaj imprimat (Layout) ca un fișier de tip proiect cu extensia .MAX.
6. Se utilizează programul OrCAD Layout pentru a importa fișierul cu lista legăturilor cu extensia .MNL în fișierul de tip proiect cu extensia .MAX.
7. Se editează conturul plăcii de circuit imprimat (se aleg dimensiunile plăcii).
8. Se plasează componentele pe placa de circuit imprimat.
9. Se realizează rutarea conexiunilor (traseelor) dintre componente.
10. Se rulează postprocesorul pentru a genera fișierele care se vor folosi la fabricarea plăcii de circuit imprimat. [3]
Elaborarea schemelor electronice cu OrCAD Capture
Se lansează programul OrCAD Capture. Din meniul File se alege New și apoi Project. Va apărea caseta de dialog New Project prezentată în Fig. 1.1 în care selectăm PC Board wizard și alegem locația unde se va salva proiectul, apoi va apărea caseta de dialog reprezentată în Fig. 1.2.
Fig. 1.2 Selecția librăriilor de componente
Fig. 1.1 Caseta de dialog New Project
Această casetă de dialog permite să se aleagă bibliotecile care vor fi folosite la realizarea proiectului. În mod normal se va alege prima bibliotecă uzuală și anume Discrete.olb și eventual alte biblioteci în funcție de componentele care vor fi folosite la realizarea proiectului. După alegerea bibliotecilor se apasă butonul Add iar în final, după ce toate librăriile necesare au fost selectate, apăsăm Finish și putem începe desenarea schemei electronice, făcând click pe Schematics și apoi pe Page1 pentru a deschide prima pagină din proiect.
Plasarea componentelor se face dacă este activă fereastra de lucru; selectăm Place – Parts sau scriem litera P de la tastatură, iar adăugarea de noi librării cu butonul Add library. Pentru a realiza legarea componentelor cu fire de conexiune, selectăm Place-Wire din meniul Place sau pur și simplu apăsăm W de la tastatură. Se poate observa dacă o componentă este conectată sau nu la un fir de conexiune după marcajul terminalului cu un pătrat care dispare dacă o componentă este legată în circuit.
Următorul pas după terminarea desenului schemei electronice constă în elaborarea listei de legături electrice din circuit (netlist) care reprezintă un fișier ASCII care descrie circuitul. Există mai multe categorii de liste de legături, dar interesul de a realiza un cablaj imprimat impune crearea unei liste de legături denumită Layout netlist. Se activează fereastra Project manager și se selectează icon-ul .dsn.
Din meniul Tools se alege Create netlist , iar aici facem click pe tab-ul Layout. Se salvează netlist în locul specificat unde se va regăsi un fișier cu extensia .MNL. În acest moment nu se bifează butonul Run ECO to Layout. Facem click pe Finish pentru a termina salvarea netlist. [3]
Schemela obținută în urma proiectării în programul OrCAD Capture este prezentată în secțiunea Anexe.
Programul OrCAD Layout
OrCAD Layout oferă o soluție completă pentru proiectarea plăcilor de circuite imprimate, ce
include proiectarea mecanică și post-procesarea în vederea fabricației, permițând gestionarea și transferul datelor în toate fazele procesului de proiectare.
Pornind de la un set de informații despre componentele electronice, obținute prin intermediul modulului Capture, se pot adăuga proprietăți suplimentare și constrângeri ce trebuie luate în considerare în proiectarea plăcilor cu circuite imprimate.
Pot fi preluate informații despre dimensiunile și conturul plăcii, poziția găurilor pentru fixare într-un ansamblu mecanic, restricții de amplasare a componentelor sau traseelor.
Structura ferestrei de proiectare permite prin meniu și taskbar-uri accesul rapid la comenzile existente. Straturile de lucru sunt individuale și specifice unei anumite informații electrice sau tehnice, fiecare strat putându-se vizualiza la orice moment.
De asemenea există posibilitatea accesării și modificării bazei de date ce cuprinde informații despre structurile ce se vor utiliza în proiectare, capsulele componentelor, trasee, dimensiunea găurilor.
Există posibilitatea modificării la nivel de grup a caracteristicilor sau la nivel individual prin accesarea ferestrei corespunzătoare: component, nets, padstacks, layers, etc.
La începutul proiectului se realizează o plasare automată a componentelor. Aceasta se poate face pentru întreaga placă sau pentru un grup de componente și este în funcție de strategii setate implicit (considerente de trasee minime, separare parte analogică de cea digitală, etc.)
Rutarea semnifică plasarea traseelor de circuit imprimat pe placa PCB și direcționarea acestora astfel încât să respecte anumite cerințe și să nu afecteze buna funcționare a circuitului. De asemenea, ea trebuie să aibă și un aspect estetic profesional. Rutarea plăcii se poate face atât manual, cât și automat. În prealabil se pot seta anumite reguli care vor fi respectate de autorouter-ul programului: dimensiuni, lungimi și locații impuse pentru trasee, declarare de zone speciale. Autorouter-ul este motorul de plasare automată a traseelor de placa PCB, dar nu este la fel de eficient ca trasarea manuală a legăturilor de rețea.
În OrCAD 9.2 avem un autorouter deosebit de puternic, Smart Route pentru soluționarea problemelor ce apar la plăcile relativ complicate unde strategiile existente nu pot face față într-o manieră satisfăcătoare pentru utilizator. Pe baza unor algoritmi adaptivi (push-n-shove) programul poate aduce îmbunătățiri majore rutării automate. În meniul Smart Route nu mai putem modifica amplasarea sau caracteristicile componentelor, în schimb putem modifica dimensiunea traseelor, distanțele dintre acestea, preferințele legate de direcționarea traseelor pe placă.
Fișierul generat este compatibil cu cel dat de Layout și are extensia .MAX. În funcție de anumite tehnologii de proiectare setate implicit sau de către utilizator, se pot face verificări pentru a urmări respectarea regulilor de realizare a cablajului imprimat, prin semnalarea pe placă a erorilor existente.
Efectuarea desenelor de cablaj cu OrCAD Layout
Se lansează programul Layout din OrCAD și se afișează o fereastră în care trebuie să se aleagă o anumită tehnologie. Pentru a începe lucrul cu programul Layout trebuie să se aleagă tipul de placă (board) și apoi să se importe fișierul de legături creat cu OrCAD Capture. Din meniul New – File va apărea o fereastră AUTOECO (Automatic Engineering Change Order) în care trebuie introduse trei opțiuni, din care două sunt alese de programator și a treia este specificată de program. Trebuie alese informațiile care se vor introduce în casetele de dialog TCH și MNL. Primul pas constă în alegerea tehnologiei pentru placa de circuit imprimat (template) care este reprezentată de un fișier cu extensia .TCH; facem click pe butonul Browse pentru a naviga prin meniurile Tools/Layout/Data și vom selecta tehnologia default.tch. Dacă se face click pe Open, denumirea fișierului cu calea de acces va fi trecută în caseta de dialog TCH.
După alegerea tehnologiei trebuie să selectăm fișierul .MNL creat anterior de OrCAD Capture care reprezintă lista de rețea din schema circuitului electronic. Alegerea se face prin activarea cu mouse-ul a butonului Browse de lângă caseta de dialog MNL și căutarea fișierului cu extensia MNL creat cu programul OrCAD Capture.
Pentru a deschide fișierul netlist cu extensia .MNL trebuie să se navigheze până în directorul unde se află acesta deoarece în mod normal este activat directorul unde se află tehnologiile. Se selectează fișierul dorit și apoi se apasă Open, iar în caseta de dialog va apărea numele fișierului și calea de acces la acesta.
După ce au fost alese tehnologia TCH și fișierul netlist, programul va afișa în a treia casetă de dialog un fișier cu o denumire default și cu extensia .MAX. Fișierul cu extensia .MAX reprezintă un fișier de tip proiect de cablaj imprimat care conține toate informațiile necesare pentru a proiecta placa de circuit imprimat. Se poate lăsa numele alocat prin program sau se poate alege un nume dorit pentru proiect. În acest moment nu este necesar să se facă modificări prin schimbarea datelor din Options. Se face click pe butonul ApplyECO. În continuare va apărea placa pe care se va face proiectarea circuitului imprimat după ce au fost stabilite toate datele inițiale necesare la proiectarea cablajului.
La stabilirea condițiilor pentru un proiect de cablaj programul Layout asignează la fiecare componentă din schema electronică un așa numit footprint. Footprint-ul reprezintă ansamblul de proprietăți fizice ale componentei, dimensiuni precum distanța dintre pad-urile pe care se fixează componenta și poziția fiecărui pin unde se face conexiunea, dimensiunea fiecărui pin și dimensiunile exacte ale componentei, pentru a ne putea orienta în aranjarea componentelor pe placa de circuit imprimat. În continuare vom utiliza termenul de “capsulă“ pentru denumirea de footprint. Dacă la componenta respectivă nu este atașată o capsulă și dacă programul Layout nu cunoaște ce capsulă să asocieze unei componente, atunci se deschide o fereastră de dialog pentru a cere programatorului să aleagă o anumită capsulă pentru componenta respectivă.
Alegerea capsulei pentru o anumită componentă apare destul de des pentru că OrCAD Capture nu alocă întotdeauna capsulă la toate componentele. În caseta de dialog Link footprint se face click pe Link existing footprint to component.
Dacă nu există o capsulă predefinită pentru oricare componentă din circuit, se va crea una, întrucât nu se poate lucra decât cu o capsulă corespunzătoare fiecărei componente utilizate. Pentru a crea o capsulă este nevoie de documentația oferită pentru componentă pentru a cunoaște cu exactitate dimensiunile sale.
În acest proiect am creat o bibliotecă nouă în care am plasat toate capsulele noi create pentru componentele utilizate. În secțiunea Anexe sunt prezentate dimensiunile după care s-a făcut proiectarea capsulelor utilizate.
Generalități privind realizarea cablajului imprimat
Prin cablaj imprimat se înțelege (PCB – Printed Mounted Board) se înțelege circuitul electric în care conductoarele de legătură sunt realizate sub formă de benzi sau suprafețe conductoare de metal pe un suport izolant. [99]
O placă de cablaj imprimat brut este realizată dintr-un strat izolator de grosime care poate varia de la câteva zecimi de mm până la ordinul câtorva mm, pe care se află o folie de cupru (simplu strat) sau două (dublu strat). Stratul izolator are în general grosimea de 1,6 mm, dar această valoare nu reprezintă un standard, deoarece depinde de foarte mulți factori, în general mecanici și tehnologici.[100]
Circuitul imprimat final se realizează prin metode foto și chimice. După numărul de straturi metalice, un circuit imprimat poate fi:
– cu simplu strat: acestea își mențin ponderea datorită prețului de cost scăzut în aparatura electronică de larg consum unde gradul de compactizare prezintă rolul secundar;
– dublu strat (dublu placat): au ponderea cea mai mare în producția de cablaje imprimate deoarece realizează o bună densitate a componentelor, iar prețul este relativ scăzut;
– multistrat: sunt destinate montajului și asamblării circuitelor integrate complexe pentru care în două straturi traseele necesare conexiunilor nu se pot realiza rațional.
Grosimea cablajului imprimat se alege în funcție de condițiile mecanice de rigiditate care se cer plăcii și de numărul de straturi ales.
Tehnologia realizării cablajelor imprimate
Tehnologiile de realizare a cablajelor imprimate pot fi grupate în două categorii:
– tehnologii substractive (metode de corodare) prin care traseele conductoare rezultă după corodarea parțială a foliei conductoare depuse deja pe suportul izolant;
– tehnologii aditive (metode de depunere) prin care traseele conductoare rezultă prin depunerea cuprului electrolitic pe suportul izolant: galvanic sau prin pulverizarea prin mască.
Deși în realizarea cablajelor imprimate predomină metodele de corodare există tendința de extindere a metodelor de depunere care sunt mai avantajoase din punct de vedere al consumului de metal.
Metodele de corodare au la bază procedee chimice care constau din:
– realizarea desenului de cablaj la scară mărită (2÷10 ori);
– realizarea filmului fotografic în mărime naturală pentru partea placată (traseele de cupru);
– realizarea filmului fotografic în mărime naturală pentru partea plantată (dispunerea componentelor);
– imprimarea imaginii de pe filmul fotografic pe folia de cupru (partea placată);
– imprimarea imaginii de pe filmul fotografic pe partea pe care se plantează componentele (partea plantată).
Reguli de realizare a cablajelor imprimate
– Se recomandă ca plăcile să fie pătrate sau dreptunghiulare având raportul dintre laturi: 1/1, 1/2, 2/3, 2/5;
– Dimensiunile maxime nu trebuie să depășească 240 x 360 mm pentru cablajul simplu și dublu placat și 200 x 240 mm pentru cablajul multistrat;
– Pasul rețelei de corodare este de 1/10”=2.54mm;
– Diametrele găurilor se aleg cu 0.2÷0.3mm mai mari decât cele ale terminalelor componentelor (uzual: 0.8mm pentru găuri nemetalizate și 1.1mm pentru găurile metalizate);
– Centrele găurilor corespund, de obicei, pasului sau multiplului pasului rețelei;
– Distanțele minime dintre traseele conductoare se stabilește în funcție de tensiunea de lucru (diferența de potențial dintre acestea este ilustrată în tabelul de mai jos) și de clasa de precizie (3 clase de precizie, clasa I fiind cea mai precisă).
Fig. 1.3.1 Distanța între conductoare în funcție de tensiunile de lucru
Metoda corodării
Tehnologia de realizare a cablajelor prin metoda corodării constă în următoarele etape:
Realizarea originalului
Pentru transpunerea circuitului pe cablaj imprimat sunt necesare filme fotografice numite măști, care se obțin după desenele originale. Desenul original se poate realiza manual sau pe baza unui program de realizare a layoutului circuitului, în cazul nostru OrCAD.
Realizarea filmului fotografic
Indiferent de metoda de fabricare a cablajului (fotolitografică sau serigrafică) este necesară obținerea filmului fotografic, negativul originalului cablajului imprimat.
Transpunerea imaginii pe suportul placat
Această operație are drept scop formarea pe suprafața placatului a zonelor opace care urmează să formeze conductoarele imprimate după corodarea selectivă. Pentru imprimare se folosește metoda fotografică și metoda serigrafică.
Imprimarea prin metoda fotografică constă în transpunerea imaginii de pe film pe placat cu ajutorul fotorezistului care a fost depus uniform pe aceasta. Fotorezistul este o soluție de alcool polivinilic sensibilizat cu bicromat de potasiu care se depune prin centrifugare. După expunerea la o sursă de ultraviolet prin clișeul negativ al cablajului și developare într-o soluție specifică, stratul fotosensibil expus se dizolvă rămânând în final desenul original transpus pe placat. La realizarea circuitelor imprimate dublu placate se folosesc două filme (clișee), câte unul pentru fiecare față a placatului. Metoda fotografică asigură o bună precizie în realizarea cablajelor imprimate, dar necesită un ciclu de producție lung și cu productivitate redusă. Din această cauză se folosește numai la unicate și la serii mici de fabricație.
Imprimarea prin metoda serigrafică folosește pentru realizarea măștii pe cablajul imprimat o pastă specială numită cerneală serigrafică. Cerneala serigrafică este greu sicativă fiind rezistentă la acțiunea de corodare a unor substanțe chimice. Depunerea pe suprafața placatului se face prin intermediul unui ecran numit sită serigrafică (țesătură din material sintetic cu ochiuri foarte mici). Pentru imprimare se folosesc soluții fotosensibile similare cu cele utilizate la metoda fotolitografică.
După uscarea sitei pe care s-a depus soluția fotosensibilă, aceasta se expune la lumină prin intermediul clișeului de cablaj.
Imprimarea prin metoda offset se folosește pentru producția de serie mare și foarte mare. Constă în transpunerea desenului pe cablaj printr-un procedeu asemănător cu cel folosit la tipărire. Se folosește un clișeu offset (zincografic) format dintr-o placă metalică pe care este executat în relief imaginea cablajului.
Corodarea se face pentru îndepărtarea cuprului din zonele neacoperite de fotorezist.
Pentru corodare se folosește se folosește clorura ferică sau clorura cuprică. Viteza de corodare depinde de concentrația soluției și de temperatura băii. Pentru neutralizarea urmelor de clorură ferică, cablajele corodate sunt trecute printr-o serie de băi bazice și apoi spălate în apă rece curgătoare. Îndepărtarea cernelii de protecție de face în tricloretilenă sau în băi alcaline.
Metalizarea găurilor are rolul de interconectare a traseelor conductoare dispuse pe fețe diferite
ale cablajului imprimat. Metalizarea se realizează prin depunerea pe cale electrolitică a cuprului (10-25µm) urmată de stanarea acestor găuri (acoperirea cu un strat de 10 µm de PbSn).
Imprimarea poziției componentelor pe cablaj este o operație care are rolul de a ușura plantarea
(în variantă manuală) și a identifica piesele plantate în faza de testare sau depanare. Imprimarea se face prin clișeul de poziționare care se transpune tot prin metoda fotolitografică pe fața plantată după corodare și metalizarea găurilor.
Tehnologia echipării cablajelor imprimate
Se disting două moduri de echipare a plăcilor imprimate: plantarea componentelor electronice în găurile prevăzute pe cablaj (Fig. a) și așezarea componentelor electronice pe contacte de lipire (Fig. b).
Fig.1.3.2 Moduri de montare a componentelor pe cablajul imprimat
Montarea componentelor cu terminale pentru inserție (THT)
Montarea componentelor pe suprafață (SMT)
Echiparea constă în plasarea componentelor în pozițiile corespunzătoare în găurile cablajului în cadrul tehnologiei THT (Trough Hole Technology) sau pe suprafața cablajului imprimat în cadrul tehnologiei SMT (Surface Mount Technology). Echiparea se poate face manual la circuitele de serie mică sau unicate și mecanizat sau automatizat pentru circuitele imprimate de serie mare și foarte mare.
Montarea componentelor cu terminale THT (Trough Hole Technology)
Pe cablajul imprimat componentele se fixează în terminale și de aceea vibrațiile sau șocurile mecanice se transmit terminalelor și lipiturilor. Terminalele se fixează prin îndoire în unghi drept.
La circuitele simplu placate componentele se fixează foarte aproape de suprafața plăcilor, iar pe cablajul cu dublă față la o anumită distanță de placa imprimată. Componentele având gabarit mai mare se fixează cu scoabe sau prin șuruburi cât mai aproape de cablajul imprimat.
La echiparea manuală plasarea componentelor se face după ce acestea au fost pregătite prin aducerea terminalelor în forma cea mai avantajoasă pentru echipare și contactare. Terminalele vor fi perpendiculare pe fața cablajului imprimat.
Contactarea componentelor implantabile (componente discrete sau integrate) pe cablajul imprimat se realizează prin lipire pe partea placată, parte care va forma și fața de lipire.
Lipirea selectivă se utilizează uneori în scopul evitării de punți conductoare pe traseele alăturate și al economiei de aliaj de lipit. Procesul selectiv se realizează prin intermediul unor măști de lipire prin depunerea unui lac de protecție împotriva lipirii. Masca de lipire nu acoperă porțiunea de cablaj unde formează să fie realizată lipirea. Pentru evitarea oxidării contactelor și terminalelor înaintea și în timpul lipirii, în baie se introduce un flux dezoxidant (de exemplu colofoniu dizolvat în alcool).
Tehnologia SMT
Tehnologia montării pe suprafață (Surface Mount Technology) s-a impus în ultimii ani ca principală metodă de fabricație a modulelor electronice. Prin această tehnologie s-au realizat module electronice mai performante, mai fiabile și cu un gabarit mai redus față de tehnologia anterioară care utiliza componente cu terminale de inserție. O caracteristică definitorie pentru SMT este montarea componentelor electronice fără a pătrunde prin găurile metalizate ca în tehnologia THT. În acest caz, zona lipiturii asigură pe lângă contactul electric și robustețea mecanică a asamblării, având un rol decisiv în fiabilitatea produsului electronic. Se întâlnesc trei mari categorii de module SMT (tipul 1, 2 și 3) în funcție de tipul de componente și modul de lipire. Tipul 1 conține numai componente montate pe suprafață din care cele active sunt montate pe partea superioară, iar fața inferioară poate conține componente discrete (componente cip). Succesiunea operațiilor pentru montarea unui circuit SMT tipul 1 (numai cu componente SMD este următoarea):
Aplicarea pastei de lipit (pe bază de SnPb) pe fața 1;
Plasarea componentelor;
Uscare placă – tratament termic pentru eliminarea substanțelor volatile din pasta de lipire;
Lipire prin metoda reflow (încălzirea cu radiații infraroșii).
La circuitele dublă față operațiile indicate anterior se repetă:
Inversarea plăcii și repetarea operațiilor pentru fața 2 a cablajului;
Curățirea și testarea.
Tipul 3 de modul SMT conține atât componente montate pe suprafață, cât și componente cu terminale. În acest caz în operațiile pentru montare se folosește în plus lipirea în val pentru componentele cu terminale.
1.4 Transmisia Ethernet
Un concept foarte important în rețelele de calculatoare este acela de protocol. Protocolul este un ansamblu de convenții și reguli pe baza cărora se realizează transmiterea datelor.
Pentru reducerea complexității alcătuirii, majoritatea rețelelor sunt organizate pe mai multe nivele (straturi), în sensul împărțirii stricte a sarcinilor: fiecare nivel este proiectat să ofere anumite servicii, bazându-se pe serviciile oferite de nivelele inferioare. Atunci când două calculatoare comunică, în fapt, se realizează o comunicare între nivelele de același rang ale celor două mașini. Nivelul n al mașinii A realizează schimb de date cu nivelul n al mașinii B prin intermediul unui protocol numit protocolul nivelului n . În realitate datele nu sunt transmise de la nivelul n al unei mașini către nivelul n al alteia. În schimb, fiecare nivel realizează prelucrările specifice asupra datelor și le transmit nivelului inferior, până la nivelul fizic unde se realizează schimbul efectiv de date. Doar din punct de vedere logic se poate vorbi de o "conversație" între nivelele a două mașini. Între oricare două nivele adiacente există o interfață , care stabilește care sunt serviciile oferite nivelului superior. În momentul proiectării arhitecturii rețelei trebuie să se specifice clar numărul de nivele și interfețele aferente. Mulțimea protocoalelor și a nivelelor
reprezintă arhitectura rețelei. Specificațiile arhitecturii (i.e. documentația ce descrie arhitectura) trebuie să fie destul de detaliate pentru a permite implementarea de aplicații care să se conformeze specificului fiecărui nivel. În acest sens, ISO a elaborat un model arhitectural de referință pentru interconectarea calculatoarelor, cunoscut sub denumirea de modelul arhitectural ISO/OSI, cunoscut și sub denumirea de stivă OSI.
Modelul OSI împarte arhitectura rețelei în șapte nivele, construite unul deasupra altuia, adăugând funcționalitate serviciilor oferite de nivelul inferior.
Fig.1.4.1.1 Modelul stivei OSI
Modelul stivei OSI
Nivelul fizic are rolul de a transmite datele (sub forma unui șir de biți) de la un calculator la altul prin intermediul unui mediu de comunicație. Problemele tipice sunt de natură electrică: nivelele de tensiune corespunzătoare unui bit 1 sau 0, durata impulsurilor de tensiune, cum se inițiază și cum se oprește transmiterea semnalelor electrice, asigurarea păstrării formei semnalului propagat.
Nivelul legăturii de date corectează erorile de transmitere apărute în cadrul nivelului fizic, realizând o comunicare corectă între două noduri adiacente ale rețelei. Mecanismul utilizat în acest scop este împărțirea biților în cadre (frame), cărora le sunt adăugate informații de control. Receptorul verifică și confirmă cadrele ce sunt transmise individual. Alte funcții ale nivelului se referă la fluxul de date (astfel încât transmițătorul să nu furnizeze date mai rapid decât le poate accepta receptorul) și la gestiunea legăturii (stabilirea conexiunii, controlul schimbului de date și desființarea conexiunii).
Nivelul rețea asigură dirijarea unităților de date între nodurile sursă și destinație, trecând eventual prin noduri intermediare (routing). Este foarte important ca fluxul de date să fie astfel dirijat încât să nu apară congestionarea în anumite zone ale rețelei. Interconectarea rețelelor cu arhitecturi diferite este o funcție a nivelului rețea.
Nivelul transport realizează o conexiune între două calculatoare gazdă (host) detectând și corectând erorile pe care nivelul rețea nu le tratează. Este nivelul aflat în mijlocul ierarhiei, asigurând nivelelor superioare o interfață independentă de tipul rețelei utilizate. Funcțiile principale sunt: stabilirea unei conexiuni sigure între două mașini gazdă, inițierea transferului, controlul fluxului de date și închiderea conexiunii.
Nivelul sesiune stabilește și întreține conexiuni sau sesiuni între procesele aplicație, rolul său fiind acela de a permite proceselor să stabilească "de comun acord" caracteristicile dialogului și să sincronizeze acest dialog.
Nivelul prezentare realizează operații de transformare a datelor în formate înțelese de entitățile ce intervin într-o conexiune. Transferul de date între mașini de tipuri diferite necesită și codificarea datelor în funcție de caracteristicile acestora. Nivelul prezentare trebuie să ofere și servicii de criptare/decriptare a datelor în vederea asigurării securității comunicației în rețea.
Nivelul aplicație are rolul de "fereastră" de comunicație între utilizatori, aceștia fiind reprezentați de entitățile aplicație (programele). Printre funcțiile nivelului aplicație se află:
o identificarea partenerilor de comunicație, determinarea disponibilității acestora și autentificarea lor;
o sincronizarea aplicațiilor cooperante și selectarea modului de dialog;
o stabilirea responsabilităților pentru tratarea erorilor;
o identificarea constrângerilor asupra reprezentării datelor;
o transferul informației.
Ethernet funcționează la nivelul fizic și al legăturii de date al stivei OSI.
Ethernet este la ora actuală cea mai cunoscută și utilizată tehnologie de comunicație pentru o rețea locală. Standardul Ethernet este definit de IEEE (Institute for Electrical and Electronic Engineers) ca IEEE 802.3 și definește regulile pentru configurarea unei rețele Ethernet precum și modul de interacțiune între diferitele elemente ale unei astfel de rețele. Fiecare calculator echipat cu o placă de rețea Ethernet, denumit și stație, funcționează independent de toate celelalte stații din rețea: nu există control centralizat. Toate stațiile atașate la rețea sunt conectate la același sistem de transport pentru semnal, denumit mediu de comunicație. Informația este transmisă serial, un bit la un moment dat, prin linia de comunicație către toate stațiile atașate acesteia.
O rețea Ethernet are următoarele elemente de bază: mediul fizic de comunicație, protocolul de comunicație și cadrarea informației.
1. mediul fizic de comunicație – folosit pentru transmiterea semnalului purtător de informație între calculatoarele rețelei;
2. protocolul de comunicație – un set de reguli pentru controlul accesului la mediul de comunicație respectat de fiecare interfață, pe baza căruia se arbitrează accesul mai multor calculatoare la acest mediu;
3. cadrarea informației – un cadru Ethernet ce constă într-un set standardizat de biți folosit la transportul datelor prin rețea.
Mediul de comunicație – Cabluri Ethernet
La elaborarea unei rețele locale alegerea suportului de transmisiune este influențată de performanțele urmărite, în primul rând de debitul datelor transmise în rețea și de alte criterii, cum ar fi: costul cablajului, folosirea unui cablaj existent, facilitățile de racordare a echipamentelor, fiabilitatea suportului ținând seama de mediul în care este instalat, protecția față de perturbații, facilitățile de întreținere.
Suportul cel mai folosit în prezent este cablul cu fire metalice, coaxial sau cu perechi răsucite, dar, într-o măsură din ce în ce mai mare, sunt folosite și fibra optică și legăturile radio.
Liniile în cablu prezintă caracteristici foarte diferite în ceea ce privește lărgimea benzii de frecvențe utilizabile, atenuarea pe unitatea de lungime, atenuarea de paradiafonie (pentru circuite apropiate), impedanța caracteristică. Standardul 802.3 specifică subnivelul MAC și nivelul fizic pentru rețelele CSMA/CD. Specificările relative la mediul de transmisiune au fost elaborate succesiv, în secțiuni separate ale standardului, pentru debitele de 10 Mb/s, 100 Mb/s, 1 Gb/s și 10 Gb/s.
Distanțele maxime pentru segmentele de rețea Ethernet și numărul de stații legate la o rețea Ethernet depind de tipul cablului de transmisie folosit.
Pentru o rețea Ethernet sunt folosite următoarele tipuri de cabluri:
• 10 Base 5 (sau cablu coaxial gros) – însemnând 10 Mb/s, în banda de bază, cu segmente de
cablu coaxial gros având, fiecare, o lungime de maximum 500 m;
• 10 Base 2 (sau cablu coaxial subțire) – 10 BASE 2 – 10 Mb/s, în banda de bază, cu segmente de cablu coaxial subțire, având lungimea maximă de 200 m (mai exact 185 m);
• 10 Base T – folosește două sârme torsadate (preferabil ecranate) într-o topologie stea, fiecare segment conectând un singur dispozitiv la un repetor, cunoscut sub numele de hub;
• 10 Base F – folosește ca mediu de comunicație cablul optic;
• 10 Broad 36 – singurul tip de mediu fizic cu transmisie în bandă largă, permite conectarea stațiilor prin cablu TV cu circuit închis.
Cadrele Ethernet
Standardul IEEE 802.3 definește un format de bază al cadrului de date, care este cerut de toate implementările MAC, și câteva formate suplimentare opționale care sunt folosite pentru a extinde posibilitățile protocolului de bază. Formatul cadrului de bază conține 7 câmpuri și este folosit pentru transferul informației între stații. Un cadru constă dintr-un numãr de biți organizați în câteva câmpuri. Acestea includ câmpurile cu adresele stațiilor, câmpul pentru date având dimensiunea între 46 si 1500 biți, un câmp pentru controlul erorilor. Adresele pe 48 de biți sunt unice pentru fiecare placă de rețea, sunt atribuite de producător și nu pot fi modificate.
Fig. 1.4.1.2 Formatul cadrului Ethernet
Primul câmp al pachetului este câmpul Preambul, cu o lungime de 7 octeți, necesar stațiilor care primesc pachetul să se sincronizeze cu ceasul stației transmițătoare.
Urmează câmpul SFD (Start Frame Delimiter), delimitator de început de cadru, care conține, pentru corecta sa interpretare, biți de non-informație, având o codificare Manchester diferită de codificarea pentru biții de informație 0 sau 1.
Adresa de destinație (DA – Destination Address) conține 6 octeți. Ea indică ce stație sau stații trebuie să recepționeze cadrul. O adresă de destinație poate indica fie o adresă individuală (corespunzătoare unei singure stații) sau o adresă „multicast” corespunzătoare unui grup de stații. O adresă având toți biții 1 se referă la toate stațiile din rețeaua LAN, și poartă numele de adresă „broadcast”.
Adresa sursei (SA – Source Address), conține de asemenea 6 octeți și indică adresa stației care transmite cadrul Este întotdeauna o adresă individuală.
Câmpul Lungime contine 2 octeți și definește lungimea exactă a cadrului de date. Acesta va fi folosit mai departe de FCS pentru a asigura că transmisia s-a realizat complet.
Câmpul Data conține informația ce se dorește a fi transmisă. Data este o secvență de n octeți de orice valoare, unde n este mai mic sau egal cu 1500. Dacă lungimea datelor este mai mică decât 46 atunci câmpul DATA trebuie extins prin adăugarea unui număr de octeți (Pad) pentru a aduce lungimea câmpului la 46 de octeți.
Câmpul FCS (Frame Control Sequence) are rolul de a detecta erorile din cadru. Suma de control a cadrului conține 4 octeți ce conțin o valoare care reprezintă suma de control CRC (Cyclic Redundancy Check) pe 32 de biți a tuturor biților cadrului, mai puțin cei conținuți în câmpurile Preambul, SFD și FCS. Înainte de trimiterea unui cadru, stația transmițătoare calculează suma de control și o memorează în câmpul FCS. Stația care recepționează cadrul face aceeași operație și compară rezultatul cu valoarea din câmpul FCS. Dacă valoarea calculată diferă de cea din câmpul FCS se consideră că s-a produs o eroare de transmitere și cadrul este abandonat.
Protocoale de transport în Internet
Protocoalele Internet sunt cel mai larg implementate în echipamentele de calcul și comunicație ale producătorilor. Orice producător de computere oferă astăzi suport pentru cel puțin o parte din suita protocoalelor Internet.
Suita de protocoale TCP/IP cuprinde o sumă de protocoale pentru prelucrarea datelor în procesul de comunicație:
• TCP (Transmission Control Protocol) comunicația între aplicații;
• UDP (User Datagram Protocol) comunicația simplă între aplicații;
• IP (Internet Protocol) comunicarea între computere;
• ICMP (Internet Control Message Protocol) pentru erori și statistici;
• DHCP (Dynamic Host Configuration Protocol) pentru adresare dinamică.
După inițializarea procesului, cipul de Ethernet poate transmite și recepționa date prin intermediul protocolului de comunicare TCP. TCP realizează conexiunea la soclu folosind propria adresa IP, numărul portului și adresa IP a destinației. Când o aplicație vrea să comunice cu alta prin intermediul protocolului TCP, ea trimite o cerere de comunicație la o adresă precisă. După sincronizarea celor două aplicații, TCP inițiază o comunicație full-duplex care va ocupa linia dintre cele două până când una dintre aplicații va închide comunicația.
TCP (Transport Communication Protocol) a fost proiectat tocmai pentru a asigura un flux sigur de octeți de la un capăt la celălalt al conexiunii într-o inter-rețea nesigură. O inter-rețea diferă de o rețea propriu-zisă prin faptul că diferite părți ale sale pot diferi substanțial în topologie, lărgime de bandă, întârzieri, dimensiunea pachetelor și alți parametri. TCP a fost proiectat să se adapteze în mod dinamic la proprietățile rețelei Internet și să fie robust în ceea ce privește mai multe tipuri de defecte.
Nivelul IP nu oferă nici o garanție că datele vor fi livrate corect, astfel că este sarcina TCP-ului să detecteze eroarea și să efectueze o retransmisie atunci când situația o impune. Datele care ajung totuși la destinație pot sosi într-o ordine eronată; este, de asemenea, sarcina TCP-ului să le reasambleze în mesaje respectând ordinea corectă (de secvență). Pe scurt, TCP-ul trebuie să ofere fiabilitatea pe care cei mai mulți utilizatori o doresc și pe care IP-ul nu o furnizează.
Toate conexiunile TCP sunt duplex integral și punct-la-punct. Duplex integral înseamnă că traficul se poate desfășura în ambele sensuri în același timp. Punct-la-punct indică faptul că
fiecare conexiune are exact două puncte finale. TCP nu suportă difuzarea parțială sau totală.
O conexiune TCP este un flux de octeți și nu un flux de mesaje. Dimensiunile mesajelor nu se
conservă de la un capăt la celălalt.
Nu există posibilitatea ca receptorul să determine numărul de unități în care a fost scrisă informația.
Protocolul de bază utilizat de către entitățile TCP este protocolul cu fereastră glisantă. Atunci când un emițător transmite un segment, el pornește un cronometru. Atunci când un segment ajunge la destinație, entitatea TCP receptoare trimite înapoi un segment care conține totodată și numărul de secvență următor pe care aceasta se așteaptă să-1 recepționeze. Dacă cronometrul emițătorului depășește o anumită valoare înaintea primirii confirmării, emițătorul retransmite segmentul neconfirmat.
În TCP conexiunile sunt stabilite utilizând „înțelegerea în trei pași". Pentru a stabili o conexiune, una din părți așteaptă în mod pasiv o cerere de conexiune prin execuția primitivelor Listen și Accept, putând specifica o sursă anume sau nici o sursă în mod particular.
Cealaltă parte execută o primitivă Connect, indicând adresa IP și numărul de port la care dorește să se conecteze, dimensiunea maximă a segmentului TCP pe care este dispusă să o accepte și, opțional, o informație utilizator (de exemplu o parolă). Primitiva CONNECT trimite un segment TCP având bitul SYN poziționat, după care așteaptă un răspuns.
Fig. 1.4.1.3 Stabilirea unei conexiuni TCP
Atunci când sosește la destinație un segment, entitatea TCP receptoare verifică dacă nu cumva există un proces care a executat Listen pe numărul de port specificat în câmpul Port destinație. în caz contrar, trimite un răspuns cu bitul RST poziționat, pentru a refuza conexiunea.
Deși conexiunile TCP sunt bidirecționale, pentru a înțelege cum sunt desființate conexiunile, cel mai bine este să ni le imaginăm sub forma unei perechi de legături unidirecționale. Fiecare legătură unidirecțională este eliberată independent de perechea sa. Pentru eliberarea unei conexiuni, orice partener poate expedia un segment TCP având bitul FIN poziționat, lucru care indică faptul că nici o informație nu mai urmează să fie transmisă. Atunci când FIN-ul este confirmat, sensul respectiv de comunicare este efectiv oprit. Cu toate acestea, informația poate fi transferată în continuare, nedefinit, în celălalt sens. Conexiunea este desființată atunci când ambele direcții au fost oprite. În mod normal, pentru a elibera o conexiune sunt necesare patru segmente TCP: câte un FIN și un ACK pentru fiecare sens. Cu toate acestea, este posibil ca primul ACK și cel de-al doilea FIN să fie cuprinse în același segment reducând astfel numărul total la trei.
Ambele capete ale unei conexiuni TCP pot expedia segmente FIN în același timp. Acestea sunt confirmate ca de obicei, conexiunea fiind astfel eliberată. Nu există de fapt nici o diferență esențială între cazurile în care mașinile eliberează conexiunea secvențial respectiv simultan. Dacă un răspuns la un FIN nu este recepționat pe durata a cei mult două cicluri de maxime de viață ale unui pachet, emițătorul FIN-ului eliberează conexiunea. Cealaltă parte va observa în final că nimeni nu mai pare să asculte la celălalt capăt al conexiunii, datorită expirării unui interval de timp.
Pașii necesari stabilirii unei conexiuni pot fi reprezentați printr-un automat cu stări finite. În fiecare stare pot apărea doar anumite evenimente. Atunci când are loc un astfel de eveniment, este îndeplinită o acțiune specifică. Atunci când se produce un eveniment a cărui apariție nu este legală în starea curentă, este semnalată o eroare. Fiecare conexiune debutează în starea “închis”. Această stare este părăsită dacă urmează să se stabilească o conexiune pasivă (Listen) sau activă (Connect). Dacă partenerul stabilește o conexiune de tipul opus, starea devine „stabilit”. Desființarea conexiunii poate fi inițiată de oricare din parteneri, odată cu eliberarea conexiunii revenindu-se în starea “închis”..
Fig. 1.4.1.4 Stările utilizate în automatul cu stări finite pentru controlul TCP
1.4.1 Cipul Ethernet W5100 și Interfața SPI
Deoarece în lucrarea de față se dorește transmisia datelor prin internet și afișarea acestora pe un calculator, avem nevoie de un cip Ethernet care să faciliteze acest tip de comunicație cu microcontrolerul.
Cipul W5100 este un controler de Ethernet care permite conexiunea ușoară la Internet pentru circuite folosind interfața SPI. W5100 este potrivit pentru aplicații care necesită un singur cip care să implementeze protocolul TCP/IP și care să suporte nivelul fizic al legăturii de date specificate de Ethernet pentru rețelele locale. Oferă o soluție economică pentru a construi un nod Ethernet, oferind comunicații de viteză mare 10MB/s și fiind capabil sa recunoască aplicațiile din terminale, stații de lucru, computere personale, sisteme mici de afaceri; are o interfață de sistem universal compatibilă cu aproape orice microprocesor, microcalculator, oferind posibilitatea operatorului de a regla, pentru orice aplicație, balanța preț/performanță. Secțiunile cipului de transmitere și de recepție sunt independente și pot opera simultan.
Fig. 1.4.1 Asignarea pinilor în cadrul cipului W5100
Funcționalitatea cipului W5100 va fi detaliată prin modul de lucru al interfeței SPI și transmiterea datelor în cadrul protocolului TCP, protocol implementat pe chipul de Ethernet.
Interfața SPI
Interfața permite unui transmițător să comunice cu alte componente aflate în afara acestuia. Interfața serială periferică a fost introdusă de Motorola și este una dintre cele mai simple metode de comunicare serială sincronă. În transmisia sincronă, grupuri de 8 biți se transmit fără folosirea unor biți fanion sau a unor pauze de transmisie interoctet, fiind cel mai rapid și eficient mod de transmisie.
SPI (Serial Peripheral Interface) este utilizată în stabilirea unei comunicații între două sau mai multe dispozitive. SPI utilizează dispozitive master/slave pentru controlul fluxului de date.
W5100 este configurat printr-o interfață SPI pe 4 fire, unde W5100 este considerat dispozitivul slave. Există patru semnale în magistrala SPI:
Master Output, Slave Input(MOSI)
Master Input, Slave Output (MISO)
Serial Clock (SCKL)
SPI Slave Select (/SS)
Fig. 1.4.2 Comunicația Master/Slave într-o interfață SPI
MOSI este folosit pentru a transfera date de la master la slave. MISO transferă date de la
slave la master. SCLK se ocupă cu sincronizarea interfeței seriale de comunicație. Un dispozitiv
slave poate comunica cu cel master cand linia Slave Select este zero. De fiecare dată când
dispozitivul master trimite un bit spre slave prin MOSI, dispozitivul slave trimite un bit spre master prin MISO. În acest fel, interfața SPI asigură o comunicare duplex deoarece informația este transmisă între slave și master concomitent.
Întregul concept de transmitere a datelor este bazat pe două registre de shiftare, câte unul în fiecare dispozitiv, conectate unul cu celălalt astfel încât să formeze o buclă. Registrele conțin de regulă 8 biți. Fiecare dispozitiv plasează pe ieșire un nou bit din registrul de shiftare de pe poziția bitului celui mai semnificativ (msb), la fiecare impuls de ceas negativ și citește la intrare un bit pe poziția celui mai puțin semnificativ bit, pe frontul pozitiv al ceasului. În acest fel este transmis un bit în ambele direcții în timpul fiecărui ciclu de tact. După opt impulsuri, conținutul registrelor de shiftare au fost schimbate și transferul a luat sfârșit. Transmisia și recepția sunt inseparabile: nu se poate realiza una fără cealaltă, pentru a recepționa un byte, acesta trebuie și transmis. Byteul este cea mai des întâlnită lungime la nivel de transfer, dar orice alt număr de biți poate fi transmis.
1.5 Noțiuni generale despre microcontrolere
Un microcontroler poate fi definit ca un sistem de calcul complet pe un singur cip.
Acesta poate fi privit ca un microprocesor care pe același cip mai conține memorie și o serie de interfețe care-i permit interacțiunea cu mediul exterior. Resursele integrate la nivelul microcircuitului ar trebui să includă, cel puțin, următoarele componente:
– o unitate centrală (CPU) cu un oscilator intern pentru ceasul de sistem;
– o memorie locală tip ROM/PROM/EPROM/FLASH, o memorie de tip RAM;
– un sistem de întreruperi;
– I/O – intrări/ieșiri numerice(de tip port paralel);
– un port serial de tip asincron și/sau sincron, programabil;
– un sistem de timere-temporizatoare/numărătoare programabile.
Unitatea centrala de procesare(CPU)
Unitatea centrală de procesare are rolul de execuție a programelor stocate în memoria principală, execuție realizată în trei etape:
· extragerea instrucțiunilor;
· decodificarea instrucțiunilor;
· execuția lor propriu-zisă.
CPU conține structuri specializate numite ALU(Aritmethic Logical Unit) care implementează funcțiile logice și efectuează operațiuni aritmetice de bază: adunare, scădere, înmulțire, împărțire.
Unitatea de memorie
Memoria este o parte a microcontrolerului a cărei funcție este de a înmagazina date. Biții de informație sunt păstrați în locații de memorie, locații ce pot fi accesate prin diverse tipuri de adresare. Memoria poate fi de mai mai multe feluri:
a. ROM (Read Only Memory) – este un tip de memorie folosit pentru a salva programele ce sunt executate. Dimensiunea programului ce poate fi scris depinde de capacitatea memoriei. ROM poate fi integrată în microcontroler sau adăugată ca cip extern în funcție de firma producătoare. Ambele opțiuni au anumite avantaje și dezavantaje. Atunci când memoria ROM este externă, microcontrolerul este mai ieftin și programul mai lung cu prețul pierderii unor pini disponibili la care se conectează. În cazul memoriei interne avem dimensiuni mai mici și costuri mai mari. Dimensiunea memoriei ROM variază de la 512B la 64kB.
b. RAM (Random Access Memory) – este un tip de memorie folosit pentru stocarea temporară a datelor și a rezultatelor intermediare folosite în operațiile microcontrolerului. Conținutul dispare atunci când sursa de curent este oprită. Poate fi de tip DRAM (Dinamic RAM) sau SRAM (Static RAM). Dimensiunea acestor memorii ajunge la câțiva kB.
c. EEPROM (Electrically Erasable Programmable ROM) – este un tip special și nu îl conțin toate microcontrolerele. Conținutul său poate fi schimbat în timpul execuției (similar RAM), dar rămâne salvat chiar și după oprirea curentului (similar ROM). De multe ori este folosit pentru a stoca valori create și utilizate în timpul operațiilor (valori de calibrare, coduri) care trebuie păstrate și la oprirea alimentării. Dezavantajul principal este că procesul de programare este destul de lent. Dacă la celelalte memorii timpii se raportau la nanosecunde, aici avem milisecunde.
Porturi intrări-ieșiri – Pentru interacțiunea cu mediul exterior microcontrolerul conține un bloc cu câteva locații de memorie al căror capăt este conectat la magistrala de date, iar conexiunile cu liniile de ieșire sunt pinii microcontrolerului. Aceste porturi pot fi de trei feluri: de intrare, de ieșire sau porturi pe două căi.
Magistrala reprezintă calea prin care datele circulă de la un bloc de memorie la altul.
Dacă, de exemplu, dorim să înmulțim conținutul a două locații de memorie și întoarcem
rezultatul înapoi în memorie, vom avea nevoie de o conexiune între memorie și unitatea centrală de prelucrare.
Există două tipuri de magistrale: de date și de adrese. Magistrala de date conectează blocurile
din interiorul microcontrolerului, iar magistrala de adresă transmite adresele de la unitatea centrală de prelucrare la memorie.
Oscilatorul generează semnale de tact care să sincronizeze acțiunile din microcontroler. De obicei constă într-un oscilator extern cu cuarț sau un cristal de cuarț legat de oscilatorul intern pentru stabilizarea frecvenței. Instrucțiunile nu sunt executate la rata impusă de oscilator, ci de câteva ori mai lent din cauza împărțirii în cicluri.
Timerele sunt registre speciale pe 8 sau pe 16 biți în care au loc incrementări la fiecare semnal de tact. Atunci când un registru este complet încărcat se generează o întrerupere. Atunci când aceste registre folosesc un oscilator cu cuarț ca și Clock se poate măsura perioada de timp dintre două evenimente. Dacă folosește semnale de tact dintr-o sursă externă timerul se transforma în counter.
Alimentarea și intrarea de reset
Ca orice circuit, microcontrolerul are nevoie de alimentare. Există două aspecte de care trebuie să se țină cont. Primul aspect e reprezentat de posibila stare primejdioasă care apare în momentul în care microcontrolerul este oprit și sursa de alimentare ajunge la un nivel destul de jos cauzat de zgomote. Cum dispozitivul are circuite cu niveluri diferite de tensiune, îi poate afecta performanța. Pentru a preveni acest fenomen este montat un circuit special. Acesta resetează totul atunci când nivelul de tensiune scade sub limita joasă. Al doilea aspect important este materializat într-un pin de reset care servește la resetarea externă a microcontrolerului prin aplicarea valorii 1 logic sau 0 logic, depinzând de tipul microcontrolerului.
1.5.1 Placa de dezvoltare Arduino Ethernet
Arduino Ethernet este o platformă de dezvoltare open-source prin intermediul căreia se pot automatiza o multitudine de aplicații. Este bazată pe microcontrolerul ATmega328 și are 14 pini digitali de intrare/ ieșire, 6 intrări analogice, un oscilator cu cristal de 16 MHz, o conexiune RJ45, un jack de alimentare, header ICSP și un buton de resetare. De asemenea, mai poate fi adăugat un modul Power over Ethernet.
Ethernet diferă de alte plăci prin faptul că nu are un cip driver USB-serial, dar are o interfață Ethernet Wiznet. Aceasta este aceeași interfață găsită pe scutul Ethernet.
Pe placă găsim un cititor de carduri microSD, care poate fi folosit pentru a stoca fișiere folosite în rețea, accesibil prin intermediul bibliotecii SD. Pinul 10 este rezervat pentru interfața Wiznet, iar pinul 4 pentru cardul SD.
Arduino Ethernet cuprinde următoarele:
Microcontroler: ATmega328
Tensiunea de operare: 5V
Tensiunea de intrare (recomandată): 7-12V
Tensiune de intrare (limite): 6-20V
Pini digitali I / O: 14 (din care 4 sunt rezervați pentru ieșirea PWM)
Pini rezervați: pinii de la 10 la 13 sunt folosiți pentru SPI;
4 pentru cardul SD;
2 pentru întreruperile W5100.
Pini de intrare analogici: 6 (A0-A5)
Curent continuu prin pinul I / O: 40 mA
Curent continuu prin pinul 3.3V: 50mA
Flash Memory: 32 KB (ATmega328) din care 0.5 KB utilizați de bootloader
SRAM: 2 KB (ATmega328)
EEPROM: 1 KB (ATmega328)
Clock Speed: 16 MHz
W5100 TCP / IP Embedded Controller Ethernet
Alimentarea
Placa poate fi alimentă, de asemenea, de la o sursă de alimentare externă, prin intermediul unui modul de alimentare opțional Power over Ethernet (PoE), sau folosind conexiunea micro USB.
Alimentarea externă (Non-USB) poate proveni fie de la un adaptor AC-DC, fie de la baterie.
Placa poate opera pe o sursă externă de 6 până la 20 de volți. Dacă sunt furnizați cu mai puțin de 7V, pinul de 5V poate furniza mai puțin de cinci volți și placa poate fi instabilă. Dacă utilizăm mai mult de 12V, regulatorul de tensiune se poate supraîncălzi și deteriora placa.
Pinii de alimentare sunt după cum urmează:
VIN – Tensiunea de intrare la placa Arduino, atunci când se folosește o sursă de alimentare externă (spre deosebire de 5 volți de la conexiunea USB sau altă sursă de energie reglementată).
5V – Acest pin generează o tensiune de 5V. Placa poate fi alimentată fie de la mufa de alimentare DC (7 – 12V), fie prin conectorul USB (5V) sau pinul VIN (7-12V). Alimentarea prin pinii de 5V sau 3.3V nu se recomandă deoarece poate deteriora placa.
3V3 – o tensiune de 3.3V generată de regulator. Valoarea maximă a curentului prin acest pin este de 50mA.
GND – Pinii de masă.
IOREF – Acest pin de pe placa de dezvoltare Arduino oferă tensiunea de referință la care operează microcontrolerul. Un scut configurat corect poate citi tensiunea de pe pinul IOREF și selectează sursa de alimentare corespunzătoare sau permite traducătorilor de tensiune să lucreze pe 5V sau 3.3V.
Intrarea și ieșirea
Fiecare dintre cei 14 pini digitali de pe placa Ethernet poate fi utilizat ca intrare sau ieșire, folosind funcțiile pinMode (), digitalWrite () și digitalRead (). Aceștia funcționează la 5 volți. Fiecare pin poate oferi sau primi un maxim de 40 mA și are o rezistență pull-up internă (deconectată implicit) de 20-50 kohmi. În plus, unii pini au funcții specializate:
Conexiune serială: 0 (RX) și 1 (TX); folosită pentru recepția (RX) și transmisia (TX) a datelor seriale TTL;
Întreruperi externe: 2 sau 3. Acești pini pot fi configurați pentru a declanșa o întrerupere la o valoare scăzută, pe front crescător sau descrescător sau la o schimbare a valorii. Întreruperea se realizează cu ajutorul funcției attachInterrupt ().
PWM: 3, 5, 6, 9 și 10. Cu funcția analogWrite () acest pin asigură ieșirea PWM pe 8 biți
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Acești pini asigură comunicarea SPI folosind librăria SPI.
LED: 9. Există un LED conectat implicit la pinul digital 9. Când avem o valoare mare pe pin, LED-ul este aprins, iar la o valoare mică, este stins. Pe majoritatea celorlalte plăci Arduino acest LED se găsește la pinul 13, dar în cazul Arduino Ethernet se găsește la pinul 9 pentru că 13 este rezervat conexiunii SPI. Acesta este un LED de control.
Placa Ethernet are 6 intrări analogice, marcate de la A0 la A5, fiecare furnizând 10 biți de rezoluție (1024 de valori diferite). În mod implicit, acestea măsoară de la masă până la 5V, deși este posibil să se schimbe limita superioară a acestui interval folosind pinul AREF și funcția analogReference().
Microcontrolerul ATmega328
Microcontrolerul ATmega328 este un model de microcontroler de mică putere cu tehnologia CMOS, pe 8 biți, bazat pe arhitectura RISC îmbunătățită de AVR. Prin execuția masivă a instrucțiunilor într-o singură perioadă de ceas, ATmega328 ajunge la viteze care se apropie de 1 MIPS pe MHz care îi permite programatorului să optimizeze consumul de energie față de viteza de procesare.
Fig. 1.5.2 Schema bloc a microcontrolerului ATmega328
„Miezul” AVR combină un set bogat de instrucțiuni cu 32 de registre de uz general. Toate cele 32 de registre sunt direct conectate la Unitatea Logic Aritmetică (ALU), permițând a două registre să fie accesate într-o singură instrucțiune executată într-o singură perioadă de ceas. Arhitectura rezultată are un cod mai eficient, fiind de până la 10 ori mai eficientă decât microcontrolerele CISC convenționale.
Pentru a maximiza performanța și paralelismul, AVR folosește o arhitectură Harvard – cu memorii și magistrale separate pentru program și date. Instrucțiunile din memoria de program sunt executate cu un singur nivel de pipeline. În timp ce o instrucțiune este executată, următoarea instrucțiune este pre accesată de memorie de program.
Acest concept permite instrucțiunilor să fie executate în fiecare ciclu de ceas. Memoria de program se află în memoria Flash reprogramabilă.
Capitolul 2. Proiectarea sistemului de monitorizare a scurgerilor de gaze
Proiectarea schemei electronice utilizând OrCAD Capture
Desenul schemei electronice realizat în mediul de lucru OrCAD Capture este prezentat în figura de mai jos.
Fig.2.1 Schema electronică realizată în mediul de lucru OrCAD Capture
Explicarea funcționării schemei electronice
Rezistența R3 are rol în protecția procesorului (care nu poate fi alimentat cu mai mult de 5V) și în protecția la scurtcircuit în caz că tranzistorul U3 nu mai poate face față.
Rezistențele R4, R5 și R6 au rolul de a limita intensitatea curentului electric care trece prin LED-uri, astfel încât acestea să nu se distrugă dacă valoarea curentului este prea mare.
Tranzistorul U3 este plasat în circuit pentru a putea genera curentul necesar funcționării ventilatorului și tensiunea acceptată de acesta.
Dioda D1 are rol în protecția împotriva spike-urilor generate de bobina ventilatorului. La fel ca orice altă bobină, când se aplică la bornele sale o tensiune, se generează un câmp magnetic care va genera la rândul său o tensiune electromotoare de sens negativ față de tensiunea aplicată, fenomen ce poate conduce la distrugerea tranzistorului U3.
Senzorii. Fiecare senzor se poate echivala din punct de vedere electronic cu o rezistență variabilă în funcție de gazul la care este sensibil (în cazul nostru, rezistențele R1 și R2). Această rezistență face parte dintr-un circuit divizor de tensiune, iar tensiunea divizată este citită de microcontroler și convertită la valorile specificate de fiecare senzor în parte.
Fiecare senzor are o rezistență internă relativ mică, de aproximativ 33Ω, pentru ionizarea gazelor. Aceștia sunt alimentați la 5V și sunt străbătuți de un curent de 150mA.
2.2 Proiectarea PCB în programul OrCAD Layout
În ceea ce urmează este prezentată placa de cablaj în urma imprimării. Aceasta a fost realizată după schema cu extensia .MAX obținută în urma proiectării în programul Layout, după ce au fost generate fișierele digitale necesare prelucrării cablajului.
Fig. 2.2.1Modulul obținut în urma proiectării în Fig.2.2.2Modulul obținut în urma realizării practice
programul OrCAD Layout
Capitolul 3. Senzorii
3.1 Prezentare generală
Senzorul este un dispozitiv care sesizează un anumit fenomen fizic sau chimic și îl convertește în semnale electrice. Astfel, senzorii au funcția de a converti un stimul într-un semnal măsurabil, cuprinzând atât traductorul, care transformă mărimea de intrare în semnal electric util, cât și circuite pentru adaptarea și conversia semnalelor, și eventual pentru prelucrarea și evaluarea informațiilor. Stimulii pot fi mecanici, termici, electromagnetici, acustici sau chimici la origine, în timp ce semnalul măsurabil este tipic de natură electrică.
Fig. 3.1 Schema bloc de funcționare a unui senzor
De multe ori, informația căutată se referă la mărimi implicând o energie care se dezvoltă sau acționează în fenomenul studiat, de exemplu: energie mecanică (forța, presiune, deformație, deplasare, debit, viteză, accelerație): energie chimică (potențial electrochimic); energie termică (temperatură, flux de căldură); energie radiantă (intensitate de radiație, distribuție spectrală a radiației); energie electrică (tensiune, curent, câmp electric, câmp magnetic etc.). În aceste cazuri, semnalul electric se poate obține prin conversia cu ajutorul traductorului, a mărimii neelectrice în mărime electrică. În acest scop, traductoarele trebuie să conțină un element sensibil la variația unui anumit parametru. Astfel, un traductor de temperatură trebuie să conțină un element sensibil la variația temperaturii, deci este necesar ca elementul sensibil al acestuia să aibă o proprietate fizică care depinde de mărimea măsurată în mod liniar și într-un interval mare.
Datorită marii diversități a principiilor de conversie a mărimilor fizice în mărimi electrice, precum și a soluțiilor de implementare a acestor principii, există și o multitudine de criterii de clasificare a senzorilor, dintre care vor fi enumerate câteva dintre cele mai importante:
În funcție de tipul mărimii fizice de intrare senzorii pot fi clasificați în:
absoluți, când semnalul electric de ieșire poate reprezenta toate valorile posibile ale
mărimii fizice de intrare, raportate la o origine (referință) aleasă;
incrementali, când nu poate fi stabilită o origine pentru toate punctele din cadrul
domeniului de măsurare, ci fiecare valoare măsurată reprezintă originea pentru cea următoare.
Foarte importantă este clasificarea în funcție de tipul mărimii de ieșire, în:
senzori analogici, pentru care semnalul de ieșire este în permanență proporțional cu mărimea fizică de intrare;
senzori numerici (digitali), la care semnalul de ieșire poate lua numai un număr limitat de valori discrete, care permit cuantificarea semnalului fizic de intrare.
Privind problema semnalului de ieșire din punctul de vedere al numărului de valori posibile, pot fi puse în evidență alte două clase distincte:
senzori binari, care prezintă la ieșire numai două valori distincte;
senzori cu un număr mare de valori, pentru măsurarea unei mărimi într-o anumită plajă; pot fi analogici sau numerici.
După mărimea fizică sau chimică de intrare pentru a fi transformată în semnal electric, se disting:
senzori de deplasare;
senzori de presiune;
senzori electrici;
senzori de forță;
debitmetre;
senzori optici;
senzori de temperatură.
3.1.1 Senzorii din seria MQ
Seria MQ de senzori de gaze folosește o sursă de încălzire mică interioară cu un senzor electrochimic. Ei sunt sensibili pentru o serie de gaze și sunt folosite în interior la temperatura camerei.
Acești senzori pot fi calibrați mai mult sau mai puțin, dar pentru aceasta este nevoie de o concentrație dată pentru gazele măsurate.
Conectarea
Cablarea preferată este de a conecta atât cei doi pini "A" împreună, cât și cei doi pini "B" împreună. Este mai sigur și se presupune că această conectare are rezultate de ieșire mai fiabile. Deși în multe scheme și specificații tehnice se indică altfel, se recomandă acest tip de conectare.
În imagine, sursa de încălzire este de + 5V și este conectată la ambii pini "A". Fig.3.1.1
Acest lucru este posibil numai în cazul în care sursa de încălzire are nevoie de o tensiune fixă + 5V.
Rezistența variabilă din imagine este rezistența de încărcare și este folosită determinarea unei valori bune. În cele mai multe cazuri este folosită o rezistență fixă pentru rezistorul de sarcină.
Tensiunea de ieșire este conectată la o intrare analogică a plăcii Arduino.
Un senzor de gaz cu peliculă este un senzor semiconductor din metal-oxid obținut prin tehnologie de serigrafiere de peliculă groasă. Acesta are ca strat chimic sensibil o pastă preparată din pulbere de metal-oxid, aditivi anorganici și lianți organici.
Pasta este imprimată pe un suport de alumină ce conține electrozi film din metal și un rezistor de încălzire. Pasta este sinterizată într-un cuptor termic sau cu infraroșu. Oxidul de staniu este materialul cel mai frecvent utilizat, fiind extrem de sensibil la urmărirea concentrației de gaze reactive în aer. Selectivitatea pentru un anumit gaz este îmbunătățită prin adăugarea de catalizatori și promotori. Conductivitatea unui film gros, semiconductor de tip n, cu mare porozitate se schimbă în prezența unui gaz reducător din cauza unui proces de ardere, care reduce acoperirea suprafeței de ioni de oxigen, provocând întoarcerea de electroni în banda de conducție și coborârea înălțimii barierei Schottky la nivel de contacte intergranulare.
Principiul de funcționare
Senzorul de gaz este compus dintr-un cip, o bază pentru cipul detector și un capac prin care intră gazul. Elementul folosit ca senzor de detectare conține materiale sensibile la un tip de gaz și un element de încălzire a materialului sensibil. Sistemul de încălzire este setat la temperatura de lucru deoarece acest tip de senzor lucrează de obicei la temperaturi înalte, 150 ÷ 600°C. În funcție de gazul țintă, elementul sensibil va utiliza diferite materiale, cum ar fi dioxidul de staniu (SnO2), oxid de wolfram (WO3) etc. Atunci când un cristal de oxid de metal, cum ar fi SnO2 este încălzit la o anumită temperatură ridicată, oxigenul din aer, este absorbit pe suprafața cristalului primind o sarcină electrică negativă.
Electronii donatori din suprafața cristalului sunt transferați la oxigenul absorbit.
Pe microcristale se formează potențialul de suprafață negativ care va juca rolul unei bariere de potențial împotriva unui flux de electroni (un curent) care va putea să circule între doi electrozi. Rezistența electrică a acestui senzor este atribuită la această barieră de potențial.
Cipul constă dintr-o plăcuță din alumină, cu electrozi de aur intercalați, pe fața superioară. Materialul senzitiv la gaz este imprimat ca o peliculă groasă peste electrozi. Pe fața inferioară (nevizibilă) este un traseu rezistiv încălzitor, din platină. Cipul este încălzit printr-un circuit rezistiv care sesizează o eventuală întrerupere a curentului de încălzire.
3.2 Senzorul de gaze inflamabile și fum MQ-2
Materialul sensibil al senzorului de gaze inflamabile și fum MQ-2 este dioxidul de staniu (SnO2), care are o conductivitate mai mică în aer curat. Atunci când există gaz combustibil, conductivitatea senzorului este mai mare cu cât concentrația de gaz este în creștere.
Senzorul de gaz MQ-2 are sensibilitate mare la GPL (gaz petrolier lichefiat), propan și hidrogen, și de asemenea, poate fi folosit pentru metan și alți aburi combustibili. Acesta are un cost redus, o durată lungă de viață, fiind adecvat pentru diferite aplicații, precum:
detector de scurgeri de gaze utilizat într-o locuință;
detector de gaze combustibile industrial;
detector de gaze portabil.
Caracteristicile de sensibilitate ale
senzorului MQ-2 pentru mai multe gaze în următoarele condiții:
Temperatură: 20 ℃;
Umiditate: 65%;
Concentrația de oxigen: 21%;
RL = 5kΩ;
Ro: rezistența senzorului la 1000 ppm de
hidrogen în aer curat;
Rs: rezistența senzorului la diferite
concentrații de gaze.
Fig. 3.2.1Caracteristicile de sensibilitate ale MQ-2
Ro: rezistența senzorului la 1000 ppm de hidrogen în aer la 33% RH și 20℃;
Rs: rezistența senzorului la 1000 ppm de hidrogen la diferite temperaturi și umidități.
Fig. 3.2.2 Dependența de temperatură și umiditate
3.3 Senzorul de monoxid de carbon MQ-7
Acest senzor are o bună sensibilitate la monoxid de carbon și mică sensibilitate la vapori de alcool, este stabil și are o durată lungă de viață. Aplicații:
• detectoare de monoxid de carbon cu utilizare comercială;
• controlul calității aerului;
• ventilație în parcare subterană.
Senzorul este compus din tub ceramic din oxid de aluminiu (Al2O3), stratul sensibil din dioxid de staniu (SnO2), iar electrodul de măsurare și de încălzire este fixat într-o crustă făcută din plastic și plasă din oțel inoxidabil. Sistemul de încălzire oferă condiții optime necesare pentru funcționarea componentelor sensibile.
Senzorul MQ-7 are 6 pini, 4 dintre ei sunt folosiți pentru a capta semnale, iar ceilalți doi sunt utilizați pentru furnizarea curentului de încălzire.
În figura alăturată se prezintă caracteristicile tipice ale sensibilității MQ-7 pentru câteva gaze la:
Temperatura: 20 ℃;
Umiditate: 65%;
Concentrație de oxigen de 21%
RL = 10kΩ
Ro: rezistența senzorului la 100ppm monoxid de carbon în aer curat
Rs: rezistenta senzorului la diferite concentrații de gaze.
Fig. 3.3 Caracteristicile de sensibilitate ale MQ-7
Rs\RL = (Vc-VRL) / VRL
Stratul sensibil al componentelor senzorului MQ-7 este realizat din SnO2 cu stabilitate, deci, are o stabilitate excelentă pe termen lung, de aproximativ până la 5 ani.
Reglarea sensibilității
Rezistența senzorului MQ-7 se modifică în funcție de diferitele tipuri și concentrații de gaze. Deci, atunci când utilizăm această componentă, este necesar să ajustăm sensibilitatea. Este recomandat să se calibreze detectorul la 200 ppm monoxid de carbon în aer și rezistența de sarcină (RL) să ia valori de aproximativ 10 KΩ (în plaja 5KΩ÷47 KΩ). La măsurarea cu exactitate, punctul de alarmă optim pentru detectorul de gaz se determină luând în considerare influența temperaturii și umidității.
Capitolul 4. Realizarea sistemului de monitorizare a scurgerilor de gaze
4.1 Realizarea cablajului imprimat
După ce am desenat cablajul în programul OrCAD, acesta a fost printat draft (de probă) pentru a verifica dacă într-adevăr componentele se potrivesc cu footprint-urile alese (în special pentru cele inexistente în librăriile standard ale programului) precum și dacă nu sunt erori. Am folosit o imprimantă laser alb-negru cu toner, pentru imprimarea cablajului pe foaia lucioasă.
Am tăiat placa de textolit la dimensiunea dorită (70 x 67 mm) și am curățat partea de cupru cu un glaspapir fin pentru a înlătura orice urmă de murdărie sau grăsime. Apoi am curățat-o cu un tampon de vată îmbibat în diluant. După ce am printat mai multe imagini ale cablajului pe aceeași foaie, am tăiat cu o foarfecă pe contur și am aplicat “abțibildul” pe partea cu cupru a plăcii de textolit.
Apoi am călcat cu fierul încălzit la maxim placa și hârtia până când tonerul a aderat la cupru. Această parte a fost și cea mai delicată, am apăsat ferm pe fierul de călcat, dar în același timp cu grijă ca hârtia să nu se miște de pe placă.
După ce am călcat cablajul, nu am dezlipit imediat hârtia de placa de textolit, ci am lăsat-o să se răcească sub un jet de apă rece; astfel hârtia se înmoaie și am curățat-o mai ușor.
Într-un recipient din plastic am pregătit clorura ferică încălzită în prealabil sub o lampă de 100W. Am introdus placa în acest recipient, având grijă ca întreaga suprafață a plăcii să fie scufundată în clorura ferică. Am lăsat-o să corodeze aproximativ 20 de minute. După corodare am spălat plăcuța cu apă din abundență și săpun, apoi am îndepărtat tonerul cu un tampon îmbibat în diluant.
Fig. 4.1 Plăcuța de cablaj imprimat după ce s-a corodat
Pentru protejarea cablajului de la coroziune deoarece cuprul se oxidează în timp datorită interacțiunii cu aerul, am acoperit traseele cu un strat de fludor, cu ajutorul letconului.
Fig 4.2 Plăcuța de cablaj imprimat în timpul acoperirii cu fludor
Ultimul pas în finalizarea plăcuței a fost perforarea cu o mini-bormașină, folosind un burghiu spiral lung de 0.9 mm, apoi am lipit componentele necesare la locurile lor. În sfârșit am testat continuitatea traseelor și funcționalitatea montajului cu ajutorul unui multimetru.
Fig. 4.3 Plăcuța acoperită în întregime cu fludor
4.2 Specificații privind echiparea PCB cu componente
Plăcuța de cablaj imprimat a fost echipată cu următoarele componente:
o rezistență ce are rolul de a proteja procesorul procesorului;
trei LED-uri SMD de culorile roșu, galben și verde;
trei rezistențe de 680Ω ce au rolul de a limita intensitatea curentului electric care trece prin LED-uri;
un tranzistor MOSFET BS170 pentru a se putea genera curentul necesar funcționării ventilatorului;
o dioda cu rol în protecția împotriva spike-urilor generate de bobina ventilatorului;
două rezistențe pentru fiecare senzor în parte. Această rezistență face parte dintr-un circuit divizor de tensiune, iar tensiunea divizată este citită de microcontroler și convertită la valorile specificate de fiecare senzor în parte.
Fig. 4.2.Plăcuța de cablaj imprimat în diferite stadii
Concluzii
După proiectarea plăcii și realizarea practică, conform foii de catalog a producătorului, stabilizatorul din cadrul Arduino ar fi fost capabil să suporte un curent de 500mA, iar cei doi senzori ar fi consumat împreună 300mA. Am observat că procesorul microcontrolerului se reseta deoarece tensiunea era foarte mică, iar din acest motiv am mai introdus un stabilizator suplimentar de tipul 7805 capabil să suporte un curent de 1.5A.
Participând la dezvoltarea și implementarea acestui proiect, mi-am atins scopul propus inițial: acela de a aplica cunoștințele teoretice dobândite pe parcursul studiilor. Am învățat astfel că, întâi de toate, pentru a avea succes, un proiect trebuie să respecte cerințele clientului, pe lângă cele tehnice și comerciale (cost). De asemenea, am înțeles următoarele:
– sistemele reale sunt diferite de cele teoretice. De cele mai multe ori aplicațiile teoretice au nevoie de adaptări pentru a putea fi implementate
– niciodată răspunsul unui sistem real nu va fi identic cu cel al modelelor aproximative
– nu se poate face o separație decât conceptuală a componentelor unui SRA, de cele mai multe ori unele module sau componente fiind integrate în altele
În urma dezvoltării acestui proiect, am aflat și o pseudo-definiție a termenului de inginer: persoană care caută și oferă soluții implementabile pentru probleme reale, soluții conforme problemei puse și bugetului disponibil.
Bibliografie
Mira Caldararu, Alexandru Vasile, Florin Caldararu; Analytical Procedure for Multi Gas Detection from SnO2 Semiconductor Sensor; The 12 th International Symposium for design and technology of electronic packaging SIITME 2006 ISBN 978-973-8961-23-4 pag 240-243
Andrei Drumea, Bogdan Lupu, Iulian Duțu, Alexandru Vasile, “Radio Sensor System for Monitoring Temperature and Humidity with Remote Access”, Ediția a XVII-a a Salonului Internațional Hidraulica, Pneumatica, Elemente de Etansare, Mecanica fina, Scule, Mecatronica, Dispozitive si echipamente electronice specifice – HERVEX2009, Proceedings, Călimănești – Căciulata, România, 18-20 noiembrie 2009, p. 124-128, ISSN: 1454-8003;
[1] http://yo2kqk.kovacsfam.ro/carte/carte%20simpo%20feb.%202009.pdf, pp.46 accesat la data de: 22.06.2015
[2]http://ro.scribd.com/doc/53189559/OrCad-Prezentare-generala#scribd, pp.1 accesat la data de: 19.06.2015
[3]http://diliev.com/Home/applications/Library/Complete_PCB_design_using_orcad_capture_and_laylay.pdf, pp. 38-40 accesat la data: 22.06.2015
http://vega.unitbv.ro/~olteanu/tehnologie_electronica_lab/L.4-Cablaje.pdf, accesat la data: 23.06.2015
https://ro.wikipedia.org/wiki/Circuit_imprimat, accesat la data: 23.06.2015
http://www.arduino.cc/en/uploads/Main/arduino-ethernet-R3-schematic.pdf
http://www.arduino.cc/en/Main/ArduinoBoardEthernet
http://www.atmel.com/images/atmel-8271-8-bit-avr-microcontroller-atmega48a-48pa-88a-88pa-168a-168pa-328-328p_datasheet_complete.pdf
https://www.sparkfun.com/datasheets/DevTools/Arduino/W5100_Datasheet_v1_1_6.pdf
http://playground.arduino.cc/Main/MQGasSensors
http://webbut.unitbv.ro/Carti%20on-line/BSM/BSM/capitol4.pdf
http://www.electronica-azi.ro/articol/8547
ANEXE
Organigrama programului
DA
NU
DA
NU
DA
NU
NU
DA
NU
Listarea codului sursă
#include <SPI.h>
#include <Ethernet.h>
// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1,177);
// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(80);
String readString = String(30); //string for fetching data from address
double temperatura, nivelco, inflamabil;
const int LedV = 7;
const int LedG = 5;
const int LedR = 6;
const int Fan = 3;
const int PinLampa = 9;
const int PinMQ2 = A1;
const int PinMQ7 = A2;
double GetTemp(void)
{
unsigned int wADC;
double t;
// The internal temperature has to be used
// with the internal reference of 1.1V.
// Channel 8 can not be selected with
// the analogRead function yet.
// Set the internal reference and mux.
ADMUX = (_BV(REFS1) | _BV(REFS0) | _BV(MUX3));
ADCSRA |= _BV(ADEN); // enable the ADC
delay(20); // wait for voltages to become stable.
ADCSRA |= _BV(ADSC); // Start the ADC
// Detect end-of-conversion
while (bit_is_set(ADCSRA,ADSC));
// Reading register "ADCW" takes care of how to read ADCL and ADCH.
wADC = ADCW;
// The offset of 324.31 could be wrong. It is just an indication.
t = (wADC – 314.31 ) / 1.22;
// The returned temperature is in degrees Celsius.
return (t);
}
void senzori(void){
temperatura=GetTemp();
nivelco=analogRead(PinMQ7)/10;
inflamabil=analogRead(PinMQ2)/10;
analogWrite(LedG, nivelco);
analogWrite(LedR, inflamabil);
if (nivelco>50) analogWrite(Fan,255);
else if (nivelco>20) analogWrite(Fan,50);
else analogWrite(Fan,0);
if (inflamabil<50) digitalWrite(LedV, HIGH);
else digitalWrite(LedV, LOW);
}
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
pinMode(LedG, OUTPUT);
pinMode(LedV, OUTPUT);
pinMode(LedR, OUTPUT);
pinMode(Fan, OUTPUT);
pinMode(9, OUTPUT);
pinMode(PinLampa, OUTPUT);
// start the Ethernet connection and the server:
Ethernet.begin(mac, ip);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}
void loop() {
senzori();
// listen for incoming clients
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
//read char by char HTTP request
Serial.write(c);
// if you've gotten to the end of the line (received a newline
// character) and the line is blank, the http request has ended,
// so you can send a reply
if (c == '\n' && currentLineIsBlank) {
// send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close"); // the connection will be closed after completion of the response
client.println("Refresh: 2"); // refresh the page automatically every 5 sec
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<title>Monitorizare gaze</title>");
client.print("<body style=background-color:aqua>");
client.print("<font size=4>");
client.print("Temperatura este ");
client.print(temperatura);
client.println(" *C <br/> ");
client.print("CO in camera este ");
client.print(nivelco);
client.println(" % <br/>");
client.print("Nivel gaze inflamabile ");
client.print(inflamabil);
client.println(" % <br/>");
client.println("</font></body></html>");
break;
}
if (c == '\n') {
// you're starting a new line
currentLineIsBlank = true;
}
else if (c != '\r') {
// you've gotten a character on the current line
currentLineIsBlank = false;
}
}
}
// give the web browser time to receive the data
delay(1);
// close the connection:
client.stop();
Serial.println("client disonnected");
}
}
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Sistemele de Monitorizare a Gazelor (ID: 163653)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
