Sisteme de Prelevare a Semnelor Vitale

Sisteme de prelevare a semnelor vitale

Cuprins

SCOPUL LUCRĂRII

CAPITOLUL I – DESCRIEREA PARAMETRILOR VITALI

1. Introducere

1.1.Clasificare

a. După natura semnalului

b. După evoluția în timp

2. Parametri vitali

2.1.Semnalul electrocardiograf

2.1. Saturația oxigenului din sânge

2.3.Frecvența respiratorie

2.4.Temperatura

CAPITOLUL II –SENZORI UTLILIZAȚI ÎN MĂSURAREA PARAMETRILOR VITALI

1. Senzori

1.1.Introducere

1.2.Clasificare

2. Senzori folosiți la măsurararea semnalelor vitale

2.1.Senzori pentru măsurarea pulsului

2.1.1. Senzori pentru monitorizarea frecvenței respiratorii

a.Termistor cu coeficient negativ de temperatură (NTC),

b.Termistorul cu coeficient pozitiv de temperatură (PTC),

2.2.Senzori pentru temperatură

CAPITOLUL III – ACHIZIȚIA ȘI PRELUCRAREA SEMNALELOR VITALE

1.Generalități

1.2.Dispozitiv de monitorizare a ritmului cardiac (puls)

1.2. Dispozitiv de monitorizare a frecvenței respiratorii

1.3.Dispozitiv de monitorizare a temperaturii

2. Fitrarea semnalelor biomedicale

2.1.Zgomote și artefacte

2.2.Tipuri de filtre

3. Specificațiile transmițătorului

3.1. Microcontrolerul PIC16F887

3.1.1.Caracteristicile microcontrolerului

3.1.2.Unitatea centrală de procesare (CPU)

3.1.3.Memoria

3.1.4.Bank – urile memoriei RAM

3.1.5.Stiva

3.1.6.Sistemul de întrerupere

3.1.7.Reguli generale legate de folosirea pinilor unui microcontroller PIC16F887

3.2.Convertor Analog- Digital

3.2.1.Esantionarea

3.2.3.Cuantizarea

3.2.3.Codarea

CAPITOLUL IV – COMUNICAȚIE SERIALĂ ȘI PARALELĂ

1.Interfețe de comunicație serială

1.1 Comunicația serial- sincronă

1.2.Comunicația serial- asincronă (SCI)

CAPITOLUL V – SISTEMUL DE MONITORIZARE

1.1. Prezentare generală

1.2. Modul de realizare al layout-ului

1.3. Modul de realizare practic al plăcuței

1.4. Realizarea plăcuței pentru transmisia serială

2. Prezentare software a sistemului

2.1. Modulul ADC – Convertor Analog – Digital

2.2.Modulul de transmisie Asincron

2.3.Testarea modulelor ADC și EUART

Scopul lucrării

Depistarea bolilor cardiovasculare implică o serie de investigații ușor de realizat cum ar fi măsurarea tensiunii arteriale, ascultarea inimii etc.

Deoarece sănătatea populației este o problemă care necesită o atenție sporită iar sistemul medical se confruntă cu o insuficiență a personalului de specialitate s-a dezvoltat din ce in ce mai mult serviciile de telemedicină.

Telemedicina reprezintă “totalitatea sistemelor care ajută la procesul de ingrijire a sănatații prin schimbul cât mai eficient de informative medicală”[Bannet,1978].

Monitorizarea clasică presupune prelevarea de la un pacient a unor semnale vitale sau a unor parametrii fiziologici și analiza acestora.

Parametrii fiziologici pot fi prelevați în mod automat cu ajutorul unor dispozitive de monitorizare.

Se dorește implementarea unui sistem de monitorizare a unor semnale vitale cu scopul de a depista eventualele boli pe care le are subiectul monitorizat. Semnalele monitorizate sunt :pulsul, restirația și temperatura.

Componenta hardware:

Acest sistem este format din:

o rețea de senzori medicali pentru semnale vitale (puls, repirație, temperatura);

un calculator personal interfațat printr-un fir si – sau un modul bluetooth cu rețeaua de senzori pentru achiziția și prelucrarea primară a datelor.

Componeta software:

S-au dezvolatat programe de aplicație pentru:

achiziția datelor medicale;

aplicația principală pentru microcontroller;

prelucrarea datelor medicale;

clasificarea evenimentelor;

interfațarea si comunicarea între rețeaua de sensori și calculatorul personal.

Schema bloc a rețelei personalizate de senzori:

Capitolul I – Descrierea parametrilor vitali

Introducere

Semnalele biomedicale sunt folosite pentru a extrage informație din sistemele biologice investigate. Semnalele culese sunt însoțite de o serie de zgomote care trebuie înlăturate iar semnalele utile rămase trebuie prelucrate și analizate astfel încât să putem extrage informații utile în decizii medicale.

Principalele etape în prelucrarea semnalelor medicale sunt:

Achiziția semnalelor;

Prelucrarea semnalelor;

Clasificarea sau interpretarea semnalelor în vederea unui diagnostic.

1.1.Clasificare

a. După natura semnalului

Semnale biomedicale electrice: semnal electrocardiograf (ECG), datorat activității inimii; semnal electroencefalografic(EEG), datorat manifestărilor electrice ale activității creierului; semnal electromiograf (EMG), datorat fenomenelor electrice ce însoțesc activitatea musculară.

Semnal QRS:

Semnal EEG:

Semnal EMG:

Biosemnale neelectrice: semnalul Doppler, reprezentat de variația frecvenței ultrasunetelor reflectate de suprafețe în mișcare; fenocardiograma, înregistrată din manifestările sonore ce însoțesc ritmul cardiac.

b. După evoluția în timp

Semnale deterministe: semnale periodice, semnale cvasiperiodice, semnale tranzitorii.

Semnale aleatoare: semnale staționare( EEG, anumiți parametri rămân constanți, de exemplu media); semnale nestaționare( EMG, anumiți parametri depind de timp).

Parametri vitali

Termenul „parametri vitali” se referă la măsurarea cardiacă , a frecvenței respiratorii, a presiunii arteriale, a temperaturii corpului și a saturației oxogenului din sânge, aceste mărimi fiind vitale organismului uman [ Yang, 2008].

2.1.Semnalul electrocardiograf reprezintă un semnal electric de amplitudine mică ce reflectă activitatea inimii. În timpul funcționării, inima generează un curent electric care este captat cu ajutorul unor electrozi plasați la nivelul toracelui și membrelor pacientului monitorizat.

Monitorizarea acestui parametru este foarte utilă în diagnosticare, prevenție, evaluarea pe termen lungsau în stabilirea medicației corespunzătoare pacineților cu tulburări cardiovasculare.

Electrocardiograma normală prezintă o serie de deflexiuni, segmente și intervale. Deflexiunile se numesc P, QRS și T.Segmentele sunt porțiuni de traseu cuprinse între undele PQ și ST iar intervalele sunt porțiuni de traseu care cuprind unde și segmente PQ și QT.

Unda P are durata cuprinsă între 0.06 și 0.10 siar amplitudinea mai mică decât 0.25 mV.

Complexul QRS

Prima undă negativă Qare durata < 0.04s, unda R are amplitudinea cea mai mare, unda S are durata medie de 0.1și amplitudinea de 1- 1.5mV.

Unda Teste rotunjită, are o amplitudine mai mică decât o treime din complexul QRS și o durată cuprinsă între 0.1- 0.3s.

Unda Ueste mică, are un aspect rotunjit, fiiind mai mică cu o patrime din unda T.

Segmentul PQ are o durată cuprinsă între 0.06 s și 0.1 s. Segmentul ST are durata de 0.05- 0.15 s. Punctul J indică sfârșitul depolarizării ventriculare și este greu de depistat.

2.1. Saturația oxigenului din sânge

Măsurarea determină raportul procentual dintre conținutul actual în oxigen al hemoglobinei( (”Hemoglobina este pigmentul respirator (pigmentul roșu), a tuturor vertebratelor, fiind prezentă în eritrocite, unde are rol în transportul oxigenului (oxihemoglobină), și a CO2 (carbohemoglobină)”) și capacitatea maximă de transport a hemoglobinei. este o măsoară a nivelulului de oxigen din hemoglobină și nu indică conținutul în oxigen al sângelui arterial.

Cantitatea maximă de oxigen care se poate lega de hemoglobină poartă numele de capacitate de oxigen.

Măsurarea saturației de oxigen în sânge în repaos dă informații privind capacitatea pulmonară de a asigura organismului o cantitate de oxigen suficientă, în absența efortului (=94 – 98%). Scăderea acestui parametru ar putea însemna o insuficiență respiratorie (sub 94%).

Uneori, chiar dacă oxigenul din sânge este într-o concentrație normal în repaus, este necesară efectuarea unui test de efort pentru a vedea dacă în condiții de creștere a necesarului de oxigen, plămânii pot furniza surplusul solicitat.

Dacă saturația în oxigen scade sub 92%, asta ar putea însemna că pacientul monitorizat suferă de insuficiență respiratorie latentă.

În cele ce urmează voi descrie parametri vitali ce constituie obiectul lucrării mele de licență și anume: ritmul cardiac, frecvența respiratorie și temperatura.

Ritmul cardiac (pulsul) reprezintă expansiunea ritmică a arterelor care se comprimă pe un plan osos si reflectă numarul de bătăi ale inimii pe minut.Bătăile inimi diferă de la o persoană la alta. Pulsul oferă de asemenea informații despre starea vaselor sanguine precum și puterea batăilor inimii.

Frecvența normală a bătăilor inimii in stare de repaos este:

la bebeluși cu vârsta mai mică de un an – 110-160 batai pe minut;

la copii cu vârsta cuprinsă intre 1-2 ani – 100-150 batai pe minut;

la copii cu vârsta cuprinsă intre 2-5 ani – 95-140 batai pe minut;

la copii cu vârsta cuprinsă intre 5-15 ani – 100-150 batai pe minut;

la adulți cu vârsta cuprinsă peste 18 ani – 60-100 batai pe minut.

Ritmul cadiac maxim este cea mai mare rată a bătăilor inimii rezultată în urma efortului fizic.

O metodă de a calcula ritmul cardiac maxim este următoarea:

220-vârsta pacient = valoarea ritmului cardiac maxim.

2.3.Frecvența respiratorie este un alt parametru utilizat în evaluarea stării de sănătate. Frecvența și amplitudinea mișcărilor variază foarte mult în funcție de necesitatea de oxigen și de cantitatea de dioxid de carbon acumultă în urma procesului in expir-inspir.

Frecvența respiratorie normală, pe grupe de varstă(exprimată in număr de cicluri respiratorii complete inspir – expira pe minut):

la bebeluși cu vârsta cuprinsă mai mică de un an – 30-40 cpm;

la copii cu vârsta cuprinsă intre 1-2 ani – 25-35 cpm;

la copii cu vârsta cuprinsă intre 2-5 ani – 25-30 cpm;

la copii cu vârsta cuprinsă intre 5-12 ani – 20-25 cpm;

la copii cu vârsta mai mare de 12 ani – 15-20 cpm;

la adulți cu vârsta mai mare de 18 ani – 12-15 cpm.

2.4.Temperatura normală a corpului este un indicator principal a funcționării normale a organismului și un indice al stării generale de sănătate. Temperatura corpului uman este controlată de o regiune specială din creier numită hipotalamus. Această regiune recepționează semnalele rece și cald de pe suprafața pielii și de la vasele de sânge, reglând apoi temperatura internă a corpului la aproximativ 37 de grade Celsius.

Există diferențe între temperatura corpului în funcție delocul din organism în care aceasta a fost măsurată: orală, rectală, subbraț etc.

Temperatura măsurată în cavitatea orala este mai scăzută în comparație cu cea măsurată la subbraț, ureche, zona rectală etc.

Temperatura normală:

la bebeluși se încadrează între 36 și 37 grade Celsius;

În cazul în care temperatura scade sub 36 de grade atunci copilul are temperatura prea scăzută si este necesar utlizarea unor metode pentru a crește temperatura. Dacă temperatura crește peste 38 de grade Celsius, atunci copilul are febră.

la copii temperatura normală se incadrează între 36 si 36.8 grade Celsius;

temperatura normală a corpului unui adult este de 37 grade Celsius;

Femeile adulte au o temperatura a corpului ușor mai mare decât a bărbaților.

Persoanele în vârstă au o temperatură mai scăzută față de tinerii adulți.

Situații de febră

Febra este un simptom medical des întâlnit care descrie o creștere a temperaturii interne a corpului peste limitele normale.

Intervale de temperatură pentru stări febrile:

febra ușoară (37-38ºC ) de obicei nu necesită tratată

febra medie (38-39ºC )

febra mare (39-41ºC )

hiperpirexia (mai mare de 41ºC ) reprezintă urgență medicală

43- 44 s – amenință viața, poate cauza leziuni cerebrale, convulsii, șoc etc.

Capitolul II –Senzori utlilizați în măsurarea parametrilor vitali

Senzori

1.1.Introducere

Senzorii sunt dispozitive care sesizează variația unui parametru din sistem prin emiterea unui semnal corespunzător, corelat cu mărimea parametrului respectiv.Aceștia mai poartă denumirea de traductoare, având rolul de a transforma anumiți parametri a sistemului în mărimi de altă natură.

Parametru de transformat se numește semnal de intrare iar cel transformat se numește o regiune specială din creier numită hipotalamus. Această regiune recepționează semnalele rece și cald de pe suprafața pielii și de la vasele de sânge, reglând apoi temperatura internă a corpului la aproximativ 37 de grade Celsius.

Există diferențe între temperatura corpului în funcție delocul din organism în care aceasta a fost măsurată: orală, rectală, subbraț etc.

Temperatura măsurată în cavitatea orala este mai scăzută în comparație cu cea măsurată la subbraț, ureche, zona rectală etc.

Temperatura normală:

la bebeluși se încadrează între 36 și 37 grade Celsius;

În cazul în care temperatura scade sub 36 de grade atunci copilul are temperatura prea scăzută si este necesar utlizarea unor metode pentru a crește temperatura. Dacă temperatura crește peste 38 de grade Celsius, atunci copilul are febră.

la copii temperatura normală se incadrează între 36 si 36.8 grade Celsius;

temperatura normală a corpului unui adult este de 37 grade Celsius;

Femeile adulte au o temperatura a corpului ușor mai mare decât a bărbaților.

Persoanele în vârstă au o temperatură mai scăzută față de tinerii adulți.

Situații de febră

Febra este un simptom medical des întâlnit care descrie o creștere a temperaturii interne a corpului peste limitele normale.

Intervale de temperatură pentru stări febrile:

febra ușoară (37-38ºC ) de obicei nu necesită tratată

febra medie (38-39ºC )

febra mare (39-41ºC )

hiperpirexia (mai mare de 41ºC ) reprezintă urgență medicală

43- 44 s – amenință viața, poate cauza leziuni cerebrale, convulsii, șoc etc.

Capitolul II –Senzori utlilizați în măsurarea parametrilor vitali

Senzori

1.1.Introducere

Senzorii sunt dispozitive care sesizează variația unui parametru din sistem prin emiterea unui semnal corespunzător, corelat cu mărimea parametrului respectiv.Aceștia mai poartă denumirea de traductoare, având rolul de a transforma anumiți parametri a sistemului în mărimi de altă natură.

Parametru de transformat se numește semnal de intrare iar cel transformat se numește semnal de ieșire.

1.2.Clasificare

Criteriile de clasificare a traductoarele sunt următoarele:

După natura mărimi fizice neelectrice de intrare, traductoarele sunt:

pentru semnale radiante, termice, chimice, mecanice, magnetice;

După modul în care se face transformarea semnalului de intrare:

traductoare directe (realizează o singură transformare);

traductoare complexe (conțin mai multe traductoare directe).

După principiul de funcționare:

parametrice (transformă variația mărimii de intrare într-o variație a unui parametru electric);

energetice (necesită o sursă de energie auxiliară).

După semnalului de la ieșire, traductoarele sunt:

analogice;

numerice.

După mărimea neelectrică:

Traductoare pentru mărimi geometrice;

Traductoare pentru mărimi cinematice;

Traductoare pentru mărimi cinematice;

Traductoare pentru mărimi tehnologice.

Senzori folosiți la măsurararea semnalelor vitale

2.1.Senzori pentru măsurarea pulsului

Masurarea pulsului se bazează pe impulsurile electrice înregistrate direct de la inimă, în timp ce majoritatea altor siteme de măsurare a pulsului se bazează pe circulația periferică.

Având în vedere că pulsul cardiac se schimbă continuu, valoarea afișată trebuie să fie o medie pentru o anumită perioadă de timp.

Una din metodele des folosite pentru măsurarea pulsului este folosirea unui senzor de ureche. Atunci cănd se măsoară pulsul folosind un sezor de ureche, trebuie asigurată conectarea corectă a acestuia. Folosirea unei brățări este de asemenea o metodă ușoară de măsurare a pulsului.

Problemele care pot apărea pe durata măsurării pulsului sunt:

La frecvențe foarte înalte ale pulsului, sângele circulă în mod egal și în vasele capilare, astfel senzorii nu pot distinge pulsuri separate. Acest fenomen se întamplă de obicei la aproximativ 150 bătăi/minut.

În cazul în care există în apropiere surse puternice de lumină, acestea pot afecta buna funcționare a senzorului bazat pe lumina infraroșie.

Un alt dispozitiv destul de frecvent utilizat pentru măsurarea pulsului este pulsoximetrul.

Pulsoximetrul este un dispozitiv care este folosit și pentru monitorizarea saturației de oxigen din sânge. Un asemenea dispozitiv conține un monitor cu baterii și proba ce simte pulsul.

Proba pulsoximetrului este alcatuită din 2 părți, dioda emitoare de lumină și un detector de lumină numit fotodetector. Fascicolele de lumină sunt transmise prin țesuturi dintr-o parte a probei la cealalta. Sângele și țesuturile absorb o parte din lumina emisă de probă. Fotodetectorul detectează lumina transmisă de pulsațiile vaselor sanguine prin țesuturi. Proba pulsoximetrului trebuie plasată acolo unde pulsul poate fi detectat.

Acesta poate fi de mai multe feluri:

pentru utilizarea la degetele mâinii;

pentru utilizarea la degetele piciorului;

pentru utilizarea la lobul urechii.

Cele utilizate la degete pot stopa fluxul de sânge, în cazul în care acesta este prea strâns. Cele mai ușor de utilizat sunt cele pentru lobul urechii.

2.1.1. Senzori pentru monitorizarea frecvenței respiratorii

În mod normal, măsurarea frecvenței respiratorii presupune senzori ce sunt atașați de corpul uman.

Una din metodele des utilizate este folosirea unei benzi elastice cu senzori care se plasează în jurul toracelui sau a abdomenului pentru a monitoriza mișcarea acestora. Mișcarea toracelui sau a abdomenului oferă informații despre frecvența respiratorie.

O altă metodă pentru măsurarea frecvenței respiratorii este folosirea termistorilor.

Termistorul este un traductor de temperatură care are proprietatea de a-și schimba rezistența electrică în funcție de de orice schimbare a rezistenței sale absolute.

Există două tipuri de termistori:

a.Termistor cu coeficient negativ de temperatură (NTC), este un traductor a cărui rezistență scade odată cu creșterea temperaturii;

Caracteristica termică este dată de relația:

unde,

reprezintă rezistența termică la temperatura T

B reprezintă constanta de material care caracterizează sensibilitatea termistorului

A reprezintă constanta care depinde de tipul termistorului.

b.Termistorul cu coeficient pozitiv de temperatură (PTC), este un traductor de temperatură caracterizat de o scădere lentă a rezistenței până la o anumită temperatură de prag, după care rezistența crește cu până la trei ordine de mărime.

Caracteristica termică este dată de relația:

unde:

reprezintă rezistența termică iar A, B, C sunt constante care depin de material și de dispozitiv.

Caracteristica de reglare a rezistenței cu temperatura

Termistorii sunt plasați în fluxul respirator al pacientului. În acest fel se măsoară diferența de temperatură dintre aerul inspirat și cel expirat, determinând în acest fel frecvența respiratorie.

2.2.Senzori pentru temperatură

Unul dintre cele mai utilzate dispozitive folosite pentru măsurarea temperaturii este termometrul.. Este un dispozitiv simplu, de construcție și precizie diferite, capabil să acopere un domeniu larg de temperatură (între -200 °C și +3000 °C).În funcție de principiul care stă la baza funcționării lui, termometrul se clasifică în:

Termometru cu variație de volum;

Termometru cu variație de presiune;

Termometru cu variție a rezistenței electrice;

Termometru cu variație a tensiunii electromotoare;

Termometru cu variație a energiei radiante.

În momentul de față cele mai utilizate termometre sunt cele electronice. Pentru un termometru electronic, traductorul de temperature poate fi o termorezistența, un dispozitiv semiconductor, un termocuplu sau un termistor.

Termorezistoarele funcționează pe baza creșterii rezistenței la cresterea temperaturii. Caracteristica de reglaj a rezistenței este următoarea:

Materialele din care se fac termorezistențele se aleg în funcție de următoarele criterii:

rezistivitate mare;

liniaritatea caracteristicii de transport;

puritate ridicată;

stabilitate în timp;

preț scăzut.

Traductoare de temperatură cu termocupluri

Se bazează pe efectul termoelectric: la atingerea a două metale cu proprietăți electrice diferite, apare între ele o diferență de potential, diferență care se numește diferență de potential de contact.

Termocuplurile sunt utilizate la măsurarea temperaturilor în funcție de tip,în intervalul 258ºC – 2100ºC.

Capitolul III – Achiziția și prelucrarea semnalelor vitale

1.Generalități

Reprezentarea semnalelor medicale in format electronic face mai simplă analiza și procesarea lor.

Schema bloc a sistemului de monitorizare

1.2.Dispozitiv de monitorizare a ritmului cardiac (puls)

Acest senzor constă dintr-un led care transmite un semnal luminos prin degetul, lobul urechii sau orice alt țesut capilar al subiectului monitorizat. O parte din această lumină este reflectată de către celulele sângelui.Conține de asemenea un senzor de lumină ambientală, la fel ca și cele folosite la telefoane sau laptopuri pentru ajustarea luminozității ecranului în diferite condiții de lumină. Semnalul reflectat este detectat de către senzor, determinandu-se în acest fel ritmul cardiac.

Senzorul poate fi alimentat la 3-5 V iar semnalul de ieșire este analog.

Înainte de a folosi senzorul trebuie să-l izolăm de degetele uleioase sau transpirate. Senzorul este un circuit expus și dacă atingi punctele de lipire, se poate strica sau se poate introduce un zgomot nedorit care va afecta semnalul obținut la ieșire.

Senzorul are trei fire:

un fir pentru alimentare de culoare roșie, alimentarea putând fi făcută de la o sursă de la 3 până la 5 V;

un fir negru care se conectează la masă;

un fir mov care reprezintă output-ul senzorului.

Senzorul este fromat din urmatoarele blocuri electronice:

un led infraroșu, conectat la o rezistență de 478 Ω

un detector de lumină infraroșie APDS-9002 care constă dintr-un fototranzistor a cărui bază e controlată de led și care detectează lumina reflectată atunci când sângele circulă prin vene

ieșirea acestui detector e conectată la un amplificator MCP601-X-OT care amplifica semnalul

având în vedere că vor apărea zgomote pe durata prelevării semnalului, senzorul mai dispune și de fitre de tip Trece Jos pentru a îndepărta aceste zgomote.

1.2. Dispozitiv de monitorizare a frecvenței respiratorii

Dacă măsurăm cât de tare se întinde arcul, putem calcula forța gravitațională, determinând în acest fel accelerațiile și inplicit fiecare mișcare.

În cazul smartphone-urilor, accelerometrul este reprezentat de de un chip foarte mic care are în interior o structură mobilă de silicon. Strucura mobilă de silicon permite componentelor electronice să măsoare modul în care mișcăm noi dispozitivul.

Pricipalele caracteristici ale accelerometrului sunt:

Tensiune de alimentare redusă: 1.8-3.6 V;

Consum redus de curent : 320 A;

Sensivitate: maxim 330 mV/g la tensiunea de alimentare de 3V.

Semnalul de ieșire al acestui senzor este este o tensiune analogică, proporțională cu accelerația.

1.3.Dispozitiv de monitorizare a temperaturii

Pentru monitorizarea temperaturii, am folosit un termistor de tip NTC a cărui proprietăți le-am descris în capitolul 2 în cadrul paragrafului Traductoare de temperatură.

Acest termistor are următoarele caracteristici:

Rezistență de 1KΩ

Intervalul de variație a temperaturii este -55°C ÷ +125°C

Dimensiune 3×4.5mm

Putere de 50mW

Constanta de material B = 3470K.

Fitrarea semnalelor biomedicale

2.1.Zgomote și artefacte

Orice semnal care afectează semnalul util într-un mod nedorit se numește zgomot.

După locul în care sunt generate perturbațiile care afectează semnalul util,se disting două categorii:

zgomot extern

zgomot intern

Zgomotul extern este datorat interacțiunii nedorite dintre un circuit și mediul extern, acesta mai poate fi cauzat de sursele de alimentare a circuitelor dar și de legatura la masă.

Circuitele electronice pot fi protejate de zgomotul extern prin ecranare electrostatică sau electromagnetică, eliminarea buclelor de masă, filtrare și utilizarea surselor de alimentare cu zgomot redus.

Zgomotul intern este zgomotul din interiorul sitemului; se datorează în principal componentelor electronice. Pentru aprecierea părților de semnal util și de zgomot din cadrul semnlalului se folosește așa numitul raport semnal- zgomot care se notează S/N.

Raportul semnal – zgomotreprezintă raportul dintre puterea semnalului util și puterea zgomotului măsurate în același moment de timp.

= 10lg = 20lg = 20lg

unde , reprezintă valori efective ale semnalului util iar , reprezintă valori efective ale zgomotului.

Zgomotul extern poate fi:

zgomot de rețea de frecvență 50 de Hz;

semnale medicale de altă natura decât cel monitorizat;

zgomot de contact;

artefacte de mișcare;

Zgomotul intern poate fi:

zgomot termic;

zgomot de avalanșă;

zgomot de alice.

2.2.Tipuri de filtre

După regiunea admisă:

Fitru trece sus care lasă să treacă toate frecvențele f ≥

Filtru trece jos care lasă să treacă numai frecvențele f ≤

Filtru trece bandă care lasă să treacă frecvențele cuprinse între două limite

Filtru oprește bandă care are frecvența și

Filtre analogice utilizate ca dispozitive fizice înainte de intrarea semnalului în Convertor analog- digital

Filtre numerice- se aplică semnalului digitalizat

Filtre fără memorie- au ca secvență se ieșire o sumă ponderată a unei perioade finite de intrare și au ieșiri identice pentru aceeași intrare

Filtre cu memorie- depind de un număr de ieșiri anterioare și folosesc un număr redus de coeficienți pentru ieșire. Au nevoie de inițializare.

Filtre recursive- la acest tip de filtre ieșirea depinde atât de valoarea ultimelor N eșantioane din secvența de intrare cât și de valoare ultimelor M eșantioane din secvența de ieșire

Filtre nerecursive- ieșire depinde doar de valoarea ultimelor N eșantioane din secvența de intrare și de valoare celor N coeficienți ai filtrului

Filtre generale- dedicate

Filtre invariante în timp- filtre adaptive

Filtre liniare- neliniare: se definescîn funcție de relația diferitelor compenente din structura spectrului semnalului de ieșire, funcție de cea de intrare

3. Specificațiile transmițătorului

3.1. Microcontrolerul PIC16F887

PIC16F887 este unul dintre microcontrolerele care însumează toate caracteristicile unui mocrocontroler modern. Este unul dintre produsele celor de la Microchip, o companie foarte cunoscuta, fiind o soluție ideală pentru diferite aplicații cum ar fi:

Controlul diferitelor procese în industrie

Controlul diferitelor dispozitive

Măsurări.

3.1.1.Caracteristicile microcontrolerului

Are o arhitectură de tip RISC:

doar 35 de instrucțiuni

în afară de instrucțiunile de salt, restul instrucțiunile durează un singur ciclu mașină

Frecvența de operare: 0 – 20 MHz

Oscilator intern precis

Tensiunea de alimentare: 2 – 5.5V

Consumă 220µA ( 2V, 4MHz), 11µA (2V, 32 KHz), 5nA ( în modul de hibernare)

Are posibilitatea de a intra în modul Sleep, în cazul în care nu este folosit

35 de pini de intrare/ieșire

Memoria ROM în tehnologia Flash este de 8 KB (poate fi reprogramat pâna la 100.000 de ori)

Memorie EPROM de 256 Byte

Memoria de date poate fi scrisă de mai mult de 1.000.000 de ori

Memorie RAM de 368 Byte

Convertor Analog – Digital

Are 14 canale

Rezoluție de 10 biți

3 timere/numărătoare independente

Câine de pază/Watch- dog timer

Modul de comparator analogc are conține:

2 comparatoare analogice

Referința de tensiune fixă de 0.6V

Modularea impulsurilor în durată PWM

Modul USART

Suportă interfață de tipul RS – 232, RS – 485 și LIN2.0

Port serial sicron de tip Master

Pentru interfața SPI și

3.1.2.Unitatea centrală de procesare (CPU)

Tehnologia de tip RISC (număr redus de instrucțiuni) oferă microcontrolerului două avantaje majore:

Unitatea central poate recunoaște doar 35 de instrucțiuni (pentru a programa alt mocrocontroler este necesar să știm peste 200 de instrucțiuni)

Toate instrucțiunile durează un singur ciclu mașină cu excepția instrucțiunilor de salt care durează doi cicli mașină

3.1.3.Memoria

Microcontrolerul PIC16F887 are trei tipuri de memorie: ROM, RAM, EEPROM. Toate sunt separate una de cealaltă pentru că fiecare are caracteristici, funcții și organizare diferită.

Memoria ROM

Este folosită pentru a salva în permanență programul care este executat. De aceea, de cele mai multe ori, memoria ROM este numită și memorie program.

Memoria EEPROM

La fel ca și memoria ROM, conținutul memoriei EEPROM este în permanență salvat chiar și în cazul în care micronontrolerul nu mai este alimentat. Totuși spre deosebire de memoria program, memoria EEPROM poate fi schimbată în timpul executării operațiilor de către microcontroller.

Memoria RAM

Este cea mai complex memorie a microcontrolerului și este format din 2 părți: Regiștri cu scop general și Regiștri cu funcții special SFR.

Registrele cu scop general sunt folosite pentru stocarea temporară a datelor și a rezultatelor din timpul operațiilor

Registrele cu scop special, au scopul determinat din timpul procesului de fabricație și nu poate fi schimbat. De vreme ce biții lor sunt legați la anumite circuite din microcontroller (ADC, EUART), orice schimbare a conținutului afectează în mod direct operațiile din microcontroller.

3.1.4.Bank – urile memoriei RAM

Memoria de date este format din patru bank – uri. Pentru a accesa anumiți registri în timpul scrierii programului, este necesar să selectăm bank – ul corecpunzător. Pentru a accesa bank – urile folosim doibiți din registrul STATUS.

3.1.5.Stiva

O parte din memoria RAM folosită pentru stivă este formată dintr- un registru de 13 biți. Înainte ca microcontrolerul să execute o subrutină sau în cazul în care apare o întrerupere, adresa următoare instrucțiunii executate este memorată în stivă. În acest fel microcontrolerul știe de unde să continuie după ce s-a încheiat subrutina sau instrucțiunea de întrerupere.

3.1.6.Sistemul de întrerupere

Primul lucru pe care îl face un microcontroller, când apare o cerere de întrerupere, este să execute instrusțiunea curentă și apoi să aprească programul de execuție. Imediat după asta, adresa instrucțiunii curente este împinsă în stivă și adresa prestabilită este scrisă într-un Numărator de Program (PC). Locația de unde programul continuă execuția este numită întrerupere. Pentru PIC16F887, această adresă este 0004h.

3.1.7.Reguli generale legate de folosirea pinilor unui microcontroller PIC16F887

Când construim un dispozitiv, trebuie să selectăm un port prin intermediul căruia microcontrolerul va comunica cu perifericele folosite. Dacă intenționăm să folosim doar intrări/ieșiri digitale, selectăm orice port dorim. Dacă folosim ieșirile analogice, trebuie să selectăm portul corespunzător care suportă o asemenea configurație a pinilor (AN0 – AN13).

Fiecare pin poate fi configurat ca un pin de intrare sau de ieșire. Prin intermediul biților regiștrilor TRISA, TRISB, TRISC, TRISD, TRIS, vom configure pinii doriți ca fiind de intrare sau de ieșire.

Dacă în program folosim intrari analogice, trebuie să setăm biții regiștrilor ANSEL și ANSELH încă de la începutul programului.

Dacă folosim intrerupătoare și/sau butoane, este de preferat să le legăm la portul B pentru că pinii de la acest port au rezistori de tip pull-up. Pentru a folosi acești rezistori, trebuie să setăm bitul RBPU din registrul OPTION_REG , în timp ce instalarea individual a acestor rezistori este activată de biții registrului WPUB.

3.2.Convertor Analog- Digital

Având în vedere faptul că ieșirile senzorilor folosiți în prelevarea semnalelorvitale sunt analogice, folosesc un Convertor Analog –Digital din cadrul microcontrolerului.

Convertorul Analog- Digital reprezintă un bloc sau un circuit care are o mărime de intrare un semnal analogic (tesiune, curent) șifurnizează la ieșire un număr care constituie o aproximare a valorii analogice a semnalului analogic.

Procesul invers, prin care unei secvențe de coduri numerice i se asociază un semnal continuu, se numește conversie digital- analogică.

Conversia analog –digital este formată din trei procese:

Eșantionarea;

Cuantizarea;

Codarea.

3.2.1.Esantionarea

Funcția de eșantionare conține impulsuri de amplitudin econstantă, durată T și un timp de separare. Pentru refacereacorectă a semnalului analogic original trebuie îndeplinită teorema lui Nyquist: Frecvența de eșantionare trebuie să fie ce lpuțin egală cu dublul frecvențe imaxime din spectrul semnalului eșantionat.

Dacă eșationarea se petrece cu o frecvența prea mica, marginea inferioară a frcvenței de eșantionare se suprapune peste frecvența semnalului analogic în banda de bază. Procesul de eșationare și reținere determină ca menținere a valorii amplitudinii eșantionate până la următoarea eșantionare.Aceasta face ca forma de undă să capete un aspect de semnal în scară.

3.2.3.Cuantizarea

Pentru a realize conversia analog- numeric este necesar ca întreg domeniul de variație al mărimii analogice să fie divizat într-un numar finit de trepte, numite ”cuante”.

Mărimea cuantelor este determinat de rezoluția sistemului. Încazul Convertorului folosit în cadrul acestei lucrări, numărul de biți pe care se poate face conversia este 10.

Procesul de cuantificare constă în împărțirea intervalului maxim de variație a semnalului analogic de intrare într-un număr determinat de trepte, de amplitudineegală. Mărimea treptelor ce rezultă în urma cuantificării este egală cu raportul dintre valoarea intervalului maxim de variație al mărimii analogice și numărul treptelor în care este impărțit acest interval. În cazul ADC- ului folosit de mine, vor exista trepte, înălțimea treptei fiindegală cu , unde estelimitasuperioară a domeniului de variație a convertorului.

Intervalele dinsticte ce rezultă în urma divizării domeniului maxim de variație a mărimii analogice se numesc canale cărora li se atribuie un număr întreg cereprezintă nivelul asociat fiecărui canal.

Conversia analog- numeric poate fi considerate ca fiind un proces de clasificare a mărimii analogice de intrare, într- un număr de canale distinct iar rezultatul reprezintă un număr asociat mărimii de intrare.

Mărimea de intrare se repartizează canalului k dacă ea satisfice relația următoare:

– limitasuperioară a canului k;

– limitasuperioară a canului k-1.

Lățimea canalului este diferența dintre cele două limite:

Toate semnalele ce au nivele cuprinse între valorile care delimitează canalul vor fi codificate în același fel, deci există o eroare maximă de cuantoficare de , unde este bitul de semnificație minimă.

Efectuarea unei conversii de către un Convertor analog- numeric nu se face instantaneu ci într- un interval de timp numit timp de conversie.

3.2.3.Codarea

Un număr întreg decimal se exprimă în sistem binar natural printr- un șir de n+1 cifre binare .

N = , € [0, 1].

.

Capitolul IV – Comunicație serială și paralelă

1.Interfețe de comunicație serială

Comunicația serială între microcontroler și alte dispozitive se folosește pentru a economisi pini dintr-o capsulă.

Există două tipuri de interfață de comunicație:

Sincronă- Serial Peripheral Interface SPI

Asincronă-Serial Communication Interface SCI

1.1 Comunicația serial- sincronă

În cazul acestui tip de comunicație, toate transmisiile sunt sincronizate cu un semnal de ceas comun furnizat de master( microcontroller). Perifericul receptor, numit dispozitiv slave, utilizează semnalul de ceas la achiziția de informație.

Comunicarea serial- sincronă SPI, numită și interfață cu patru fire, poate fi utilizată pentru interfațarea diverselor dispozitive:

Memorie

Convertor analog- digital

Convertor digital- analog

Senzori

Alte microcontrolere

SPI utilizează patru semnale in procesul de transmisie a datelor:

Master Out Slave In( MOSI)

Master In Slave Out(MISO)

Serial Clock( SCLK sau SCK)

ChipSelect( CS)

Semnalul MOSI este generat master și recepționat de dispozitivul slave. MISO este generat de dispozitivul slave iar generarea sa este conrolată de master

Transmisia SPI

Pe o magistrală SPI poate exista un singur dipozitiv master și mai multe dispozitive de tip slave. Dispozitivul de tip master controlează fluxul de date prin generarea uni semnal de tip clock (SCLK), activând dispozitivul slave cu care comunică prin semnalul Chip Select( CS). Dipozitivul master transmite continuu semnalul de clock către toate dispozitivele slave indiferent dacă sun selectate sau nu.

Dispozitivul master, reprezentat de un microcontroller, este cel care initiază comunicația. Semnalul de clock transmis de master trebuie să fie de o frecvență mai mică sau egală cu frecvența maximă acceptată de dipozitivele slave.

Dipozitivele master și slave conțin câte un registru de deplasare a datelor care are lungimea de 1 octet. Masterul scrie bytul în registrul de deplasare SPI a dispozitivului, făcându- se în acest fel transferarea bytului. Informația este transferată începând cu bitul cel mai semnificativ MSB până la bitul cel mai puțin semnificativ LSB. Dispozitivul slave transferă conținutul registrului SPI către master, cu ajutorul semnalului MISO. Între cele două dispozitive are loc, simultan o operație de scriere și una de citire.

Masterul are capacitatea să neglijeze conținutul registrului SPI transmis de către dispozitivul slave dacă este nevoie doar de operția de scriere. În acest fel se face schimb de informații între cele doua dispozitive.

1.2.Comunicația serial- asincronă (SCI)

Interfața asincronă SCI numită și UART (Universal Asynchronous Receiver/Transmitte) este cea mai simplă interfață serială asincronă. Această interfață este asincronă pentru că nu se transmite semnal de clock prin linia de date serială.

Interfața UART este formată din două părți:

Receptorul (RX)- convertește un flux serial de biți în date paralele pentru microcontroler

Transmițător care convertește date paralele de la microcontroler într- un flux de biți, pentru transmisie

Interfața UART furnizează și informații de stare.

Interfața serial- asincronă nu realizează sincronizarea între module, de aceea sincronizarea de date este realizată de fiecare interlocutor în parte. Pentru a fi posibil acest lucru, în fluxul de date trebuie introduse informații despre transfer:

Start transfer

Stop transfer

Paritate

Transferul de date însoțit de informația tehnică despre transfer se numește frame de date.

Datele transmise utilizează la începutul transmisiei pentru fiecare caracter un bit de start și unu sau doi biți de stop. După recepționarea bitului de start , receptorul eșantionează 7 sau 8 biți de date. În cazul în care receptorul nu primește bitul/biții de stop atunci se consideră că receptorul nu este sincronizat cu emițătorul, deci există o eroare.

Formatul de comunicare prin frame- uri

În starea pasivă se disting :

Linia de transfer pusă în 1 „logic”

Începutul transferului este semnalizat de câte o resetare a liniei, bit numit Start Bit

Se transferă un set de 5- 10 biți, conform configurației liniei de transfer

Urmează bitul da paritate

Pentru detecția erorilor, de cele mai multe ori se folosește bitul de paritate care este calculat de transmițător. Receptorul calculează paritatea pentru fiecare bit recepționat. Dacă bitul de paritate calculat este identic cu cel recepționat, atunci nu sunt erori.

Urmează biții de Stop care setează bus-ul . Valoarea bitului de Stop depinde de eroarea vitezei de transfer dintre transmițător și receptor

Semnalele folosite de interfața UART sunt:

TX- transmisie

RX- recepție

RTS- request to send

CTS- clear to send

Configurația unui frame este prezentată în următoarea secvență: „9600 8 N1”, unde

9600 reprezintă viteza de transfer boud/sec

8- mărimea datelor

N- excluderea bitului de paritate( P- includerea bitului de paritate)

1- numărul de biți de stop

Standarde utilizate în comunicarea serială:

RS 232- conține minim 3 semnale: emisie, recepție, masă; se utilizează un circuit de adaptare

RS 422- transmiterea diferențială a semnalelor

RS- 485 permite conectarea și trensferul de date între mai multe dispozitive, utilizând 2 conductoare

Interfața RS 232

Clasificarea aparatelor:

DTE (Data Terminal Equipments ), din această categorie fac parte: calculatorul, tastatura etc.

DCE (Data Communication Equipments), din această categorie fac parte: modem- uri, aparate de măsură etc.

La o interfață serială se poate conecta un singur aparat iar modul de conectare depinde de la un aparat la altul.

O conexiune serială de tip RS 232 este formată din 3 conductori:

RXD (Recive Data)- conductorul pentru semnal de recepție

TXD (Transmit Data)- conductorul pentru semnalul de emisie

GND (Ground)- conductorul de masă.

Pentru a asigura siguranța datelor transmise se introduce o comunicație de tip handshaking (handshaking este un proces automat de negociere care stabilește dinamic parametrii unui canal de comunicare stabilit între două entități înainte de comunicare normală pe începe canalul. Rezultă stabilirea fizică a canalului și precede transferul normală informații). Pe lângă semnalele obișnuite unei interfețe RS 232 se mai folosesc și semnalele RTS (Request To Send) și CTS (Clear To Send).

Pentru o siguranță superioară în transmisia de date se utilizază semnalele DTR (Data Terminal Ready) și DSR (Data Set Ready).

Prin aceste semnale, receptorul este anunțat că emițătorul este pregătit să transmită datele.

Nivele de tensiune pentru interfața RS 232 sunt:

– 15V(- 25V)

+ 15V(+ 25V)

Intervalul de la – 3V la + 3V nu este permis.

Viteza de transmise a datelor se măsoară în BOUND sau în BPS (Biti pe secunda).

Prin intermediul biților de start și stop, se determină începutul și sfârșitul secvenței de date transmisă. Se efectuează un teste de paritate prin care se pot detecta eventualele erori care au apâru în transmisia datelor.

Există 3 posibilități de detecție:

No Parity: nu se face nici un fel de test de paritate

Even Parity (paritate pară): emițătorul numără toți biții de date care au valoarea „1” și setează bitul de paritate cu „1” dacă suma afost impară și cu „0” dacă suma a fost pară. Receptorul adună biții de date cu valoarea bitului de paritate. Dacă suma nu este pară, atunci există o eroare în transmisia datelor.

Odd Parity (paritate pară): această metodă este similară celei cu paritate impara cu singura deosebire că suma biților de date și a celui de paritate este impară.

Capitolul V – Sistemul de monitorizare

1.Prezentarea hardware a sistemului

1.1. Prezentare generală

Schema bloc a sistemului de monitorizare este următoarea:

Această schemă bloc este compusă dintr- un microcontroler pe 8 biți PIC16F887, 3 digiți – 7 segmente, senzori și adaptoare de comunicare.

Parametrii vitali monitorizați sunt: pulsul, respirația și temperatura, fiind preluați de senzorii prezentați mai sus.

Dispozitivul de monitorizare a fost construit în jurul unui microcontroler cu un consum redus de energie, cu ajutorul caruia se face conversia semnalelor analogice prelevate in semnale digitale. Apoi, aceste date sunt transmise către laptop printr- o interfață serială RS232.

Placuța pe care se află microcontroleruleste foarte simplă. Conține doar niște pini pentru a putea conecta cât mai simplu și repede senzorii.

Având în vedere că microcontrolerul poate fi alimentat doar de la 2 la 5.5 V, am folosit un stabilizator de tensiune de 5 V pentru a stabiliza tensiunea de animentare și proteja în acest fel microcontrolerul. De asemenea, unul dintre senzori poate fi alimentat la maxim 3.3 V, de aceea am folosit un stabilizator de 3V.

Pentru a vedea când este alimentată plăcuța, am pus un LED care se aprinde în momentul alimentarii.

Pentru că schimbarea canalelor de achiziție se realizează prin apăsare de buton, pe Portul B al microcontrolerului am atașat 3 butoane cu reținere, active pe 1 logic. De asemenea, am pus și un buton de RESET pe pinul MCLR al microlontrolerului.

Având în vedere că oscilatorul intern al microcontrolerului este instabil, am folosit un curț extern de 10 MHz. Cuarțul prezintă din punct de vedere electric o impendanță cu proprietăți de circuit rezonant iar funcționarea lui se bazează pe efectul piezoelectric (efectul piezoelectric este pus in evidenta prin aparitia unei diferente de potential electric la capetele unui dielectric sau feroelectric atunci cand asupra lui actioneaza o forta de compresie mecanica).

Circuitul echivalent al curț- ului este următorul:

Unde, – inductanțaechivalentă a masei

– capacitatea echivalentă a elasticității cristalului

– rezistența de pierderi

– capacitatea dintre electrozii plani între care se află cristalul prin intermediul cărora se poate conecta în circuitul electric

1.2. Modul de realizare al layout-ului

Mediul de proiectare folosit pentru realizarea cablajului se numește KiCad. KiCad este un program folosit pentru proiectarea de PCB (plăcuțe de circuit printate). Aceasta facilitează proiectarea de scheme de circuite electronice și conversia acestora în PCB-uri. KiCad a fost dezvoltat de către Jean-Pierre Charras, și dispune de un mediu integrat pentru captarea și realizarea de scheme și design de PCB-uri.

1.3. Modul de realizare practic al plăcuței

După ce s-a realizat layout-ul, se parcurg următorii pași pentru realizarea practică a plăcuței:

Se printează layout-ul pe folie retroproiector

După ce se curăță plăcuța pentru cablaj, se dă cu fotorezist și se lasă cam 30 de minute, într-un spațiu închis(de exemplu o cutie). Plăcuța pentru cablaj constă într-o placă de textolit cu strat de cupru.

Se așează folia pe plăcuță și se expune la raze ultraviolete, unde se lasă cam 15 minute

După ce s-a imprimat traseul pe plăcuță, aceasta se pune în sodă caustică(hidroxid de sodiu) pentru câteva minute, apoi se pune în clorură ferică corodarea cuprului și evidențierea traseelor.

După ce s-a terminat corodarea, plăcuța se curăță cu alcool pentru a îndepărta tonerul

Se dau găurile necesare cu o mini- bormașină cu un burghiu de 1-0.9 mm.

Se lipesc componentele necesare cu un pistol de lipit/stație de lipic și cu fludor

1.4. Realizarea plăcuței pentru transmisia serială

Pentru transmisia seriala, am preluat și modificat o schema produsă de MikroElectronika (MAX 232 Board).

Cu ajutorul acestei placuțe, se face comunicarea microcontroler – PC, via RS232, folosind modului UART al microcontrolerului. Face conversia între nivelul TTL al modulului UART al microcontrolerului în nivele RS232 acceptate de către portul COM1 de pe PC.

Cablul care face legătura între placa MAX232 și PC, se numește cablu serial. Acest cablu este folosit pentru a transfera informația între microcontroler și PC

.

Este o conexiune simplă de 3 fire care conectează masa; pinul 5 de pe conectorul DE9 pentru COM1 la masa circuitului integrat MAX232. Pinul 2 de pe DB – 9 este receptorul și conectează pinul 14 al integratului. Pinul 3 este transmițătorul și se conectează cu pinul 13 al integratului.

Conectorul DB – 9 se referă la un conector foarte des folosit cu 9 pini pentru conectorul tată și cu 9 găuri pentru conectorul mamă. Acest conector este atașat cablului serial.

Având în vedere că majoritatea PC – urilor nu au mufă serială, am folosit un Adaptor USB – serial pentru a putea face conexiunea între placuța MAX232 și laptopul personal.

Acest adaptor are un conector DB – 9 cu 9 pini (conector tată), pentru conexiunea cu cablu serial, căruia îi este atașat un cablu cu USB care va fi conectat la laptop.

2. Prezentare software a sistemului

2.1. Modulul ADC – Convertor Analog – Digital

Având în vedere că ieșirile senzorilor folosiți pentru prelevarea semnalelor sunt analogice, folosesc Convertorul Analog – Digital pentru a converti aceste semnale.

Programul l-am implementat în mediul de dezvoltare MPLAB, acest program este un set de instrumente integrate pentru dezvoltarea de aplicații embedded de pe PIC și microcontrolere Microchip.

Pentru a folosi acest modul, a trebuit să configurăm următorii regiștri:

ADRESH – conține rezultatul conversiei, în cazul în care depășește 8 biți

ADRESL – conține primii 8 biți rezultați în urma conversiei

ADCON0 – registru de control

ADCON1 – registru de control

Regiștri ADRESL și ADRESH

Rezultatul în urma conversiei unei valori analogice în una digitală, va fi stocat în acești doi regiștri. Rezoluția convertorului fiind de 10 biți, rezultatul va fi și el pe 10 biți.

Există două posibilități de stocare a rezultatului:

8 biți în registrul ADRESL și 2 biți în registrul ADRESH

2 biți în registrul ADRESL și 8 biți în registrul ADRESH

Pentru ca Convertorul Analog – Digital să fie destul de precis, este necesar să punem o întârziere între intrarea analogică și măsurare, întârziere numită „timp de achiziție”. Apoi, înainte de a începe conversia, mai punem o întarzierevde maxim 20 µs pentru a crește precizia conversiei.

Folosirea Convertorului Analog – Digital presupune următoarele setări:

Pinii pe care se face conversia (AN0 ÷ AN13), trebuie setați ca pini de intrare

Convertorul se bazează pe compararea tensiunii de intrare cu o scală internă care are 1024 de nivele. Cel mai mic nivel de pe această scală este – iar cea mai mare este +.

Registrul ADCON0

Biții ADCS1, ADCS0, sunt biții pentru selecția tactului de conversie, biți pe care eu i-am pus în 00, alegând /2, acest lucru însemnând pentru un oscilator intern de 8 MHz, un timp de conversie de 250 ns.

Biții CHS3 ÷CHS0 sunt pentru selectarea canalului de conversie

Bitul GO/DONE este bitul de Status, dacă acest bit este 1, atunci conversia este în progres, daca este 0, atunci conversia a luat sfârșit. Bitul este pus automat în 0, când conversia s-a încheiat.

ADON – bit care activează convertorul A/D.

Registrul ADCON1

ADFM este bitul de selectare a modului în care este stocat rezultatul, mod menționat mai sus

VCFG0 – bitul de selectare a tensiunii de referință. Acest bit l-am pus în 0 logic pentru a folosi ca și referință tensiunea de alimentare.

Algoritm de realizare a Convertorului

Pas1: Configurarea porturilor

TRISA trebuie pus în 1 logic pentru a seta ca port de intrare, portul A pe care se afla convertorul.

Pas2: Configurarea modulului ADC

Configurarea tensiunii de referință cu ajutorul registrului ADCON1 (VCFG0=0)

Selectarea tactului de conversie prin intermediul registrului ADCON0

Selectarea modului de stocare al rezultatului

Activarea Convertorului Analog-Digital prin setarea bitului ADON din registrul ADCON0

Pas3: Așteptam ca timpul de achiziție să treacă (20 µs)

Pas4: Începem conversia prin setarea bitului GO/DONE din registrul ADCON0

Pas5: Așteptăm să se termine conversia, (verificăm intr-o buclă infinită dacă bitul GO/DONE este 0)

Pas6: Citirea rezultatului conversiei de pe registrul ADRESL și ADRESH( ADRESH*256 + ADRESL)

Funcția care imi face conversia returneză (ADRESH*256)+ADRESL, pentru ca 8 biți se stocheză în registrul ADRESL și doar 2 biți în registrul ADRESH.

2.2.Modulul de transmisie Asincron

Modulul EUART integrat în PIC16F887 are următoarele caracterisitici:

Transmisie și recepție asincronă, în același timp în ambele direcții

Lungimea caracterului poate fi de 8 sau 9 biți

Posibilitatea de detecție a erorilor

Datele sunt transmise în modul următor:

Inițial, linia de date este în 1 logic

Fiecare dată de transmisie începe cu bitul de Start care este întodeauna în 0

Lățimea datelor de transmisie este de 8-9 biți

Orice transmisie de date se termină cu bitl de STOP care este întodeauna în 1 logic

Pentru a activa transmisia de date prin intermediul modulului EUSART am făcut următoarele configurări:

TXEN = 1 – activez transmițătorul prin setarea acestui bit din registrul TXSTA

SYNC = 0 – modulul EUSART este configurat pentru a opera în modul asincron prin ștergerea acestui bit din registrul TXSTA

SPEN = 1 – prin setarea acestui bit din registrul RCSTA, modulul EUSART este activat și pinul TX/CX este configurat ca pin de ieșire. Dacă acest bit este folosit pentru o funcție analogică, trebuie ca bitul corespunzător din registru ANSEL să fie șters.

Partea centrală a transmițătorului EUSART este registrul TSR care nu este direct accesibil de către utilizator. Pentru a începe o transmisie, modulul trebuie activat prin setarea bitului TXEN din registrul TXSTA.

Pentru a trimite datele ar trebui mai întai scrise pe registrul TXREG, ceea ce va cauza următoarele evenimente:

Bytul va fi imediat transferat către registrul TSR

Registrul TREG rămâne gol, acest lucru este indicat prin setarea fanionului TXIF din registrul PIR1. Dacă bitul din registrul PIE1 este setat, atunci va fi generată o întrerupere

Datele vor fi împinse către pinul TX în ritmul oscilatorului extern de clock

Când ulimul bit părasește registrul TSR, bitul TRMT al registrului TXSTA este setat automat

Dacă registrul TXREG a primit un nou caracter între timp, se repetă pașii imediat ce se transmite bitul de STOP al caracterului precedent

Pentru transmisia de 9 biți, trebuie setat bitul TX9 din registrul TXSTA, dar nu este cazul în cadrul acestei transmisii pentru că folosim o transmisie pe 8 biți.

Registrul TXSTA este format din următorii biți:

CSRC este bitul de selecție al sursei de clock și este folosit doar în cazul transmisiei sincrone

TX9 este bitul de activare a transmisiei, bit pe care l-am pus în 0 logic pentru o transmisie de 8 biți

TXEN este bitul de activare a trasmisiei – este pus în 1 logic

SYNC – selectează modul de operare a transmisiei – este pus în 0 logic pentru o transmisie asincronă

SENDB este bitul de STOP

BRGH – bit pentru selectarea ratei de transfer – este setat pentru ca modulul EUSART să lucreze la frecvență mare

TMRT – bitul de status al registrului TSR. Acest bit este 1 dacă registrul TSR este gol și transmisia s-a terminat și este în 0 dacă registru TSR este plin

TX9D – bitul 9 al transmisie, bit pe care eu nu îl folosesc.

Generatorul ratei de transfer

Semnalul de tact de pe timerul local BRG este folosit pentru sincronizare. Timerul este format din 2 regiștri de 8 biți. Numărul scris în aceste 2 registre determină rata de transfer.

Rata de transfer se calculează cu următoarea formulă:

Rata de transfer aleasă de mine este…..

În programul principal, modul de transmisie este ciclic. Microcontrolerul preia datele de la Convertoorul Analog Digital și le transmite către calculator. Am folosit întrerupere pe Timer0 pentru a sincroniza modul de transmisie a datelor cu frecvența maximă de eșantionare a semnalului biomedical.

Pentru a calcula numărul cu care am incărcat Timer0, am folosit următoarele formule:

Deci este nevoie ca Timer0 să parcurgă 50 de bucle de întreruperi, pornind de la valoarea 5.

2.3.Testarea modulelor ADC și EUART

Pentru a putea testa funcționalitatea celor două module, am realizat un port virtual cu ajutorul programului Virtual Serial Port Emulator. Am realizat de asemenea simularea plăcuței în Proteus, mai exact în ISIS, unul dintre instrumentele acestui program folosit pentru realizarea simulărilor. În acest fel, am reușit să recepționez date transmise de la microcontroler prin portul virtual.

Programul pe care l-am folosit pentru recepție este Matlab. Matlab este un mediu de calcul numeric dezvoltat de MathWorks,. Matlab permite manipulări matrice, trasarea de funcții și date, implementarea de algoritmi, crearea de interfețe utilizator, și interfațare cu programe scrise în alte limbi, inclusiv C, C + +, Java, și Fortran.

Ca și semnal de test am folosit o sursă de tip Pulse, care generează un semnal triungiular cu frecvența de 2 Hz, semnal care seamănă cu semnalul de la ieșirea semnalului pentru puls.

În urma conversiei semnalului analogic în semnal digital, rezultă următoarele valori transmise pe terminalul virtual din ISIS.

Afișarea și prelucrarea semnalului se face, după cu am precizat mai sus, în Matlab. În cadrul algoritmului de afișare și prelucrare a semnalului, am parcurs următorii pași:

Am realizat configurările necesare pentru deschiderea portului serial

Am deschis portul serial virtual

Am realizat citirea valorilor trimise pe portul serial, iar valorile citite le-am memorat într-o matrice. Pentru a aveam mai multe valori, această citire am facut-o într-o buclă.

Am făcut conversia caracterelor trimise în numere de trei cifre

Am afișat semnalul inițial în timp, semnal care seamănă cu semnalul triunghiular trimis spre conversie

Am făcut histograma semnalului

Am determinat punctele de minim și de maxim de pe histogramă și pozițiile lor

Am eliminat offset-ul semnalului

Pentru determinarea numărului de bătăi pe minut, am calculat întâi energia semnalului și apoi am calculat numărul de bătăi pe minut

În urma semnalului prelucrat, au rezultat următoarele:

Am făcut de asemenea și simularea pentru prelevarea datelor de la un senzor de temperatura.

Temperatura măsurându-se cu ajutorul unui termistor de tip NTC, am realizat un divizor rezistiv cu ajutorul unui rezistor de 10KΩ și un termistor de 1KΩ.

Similar Posts