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Ω.
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: Sisteme de Prelevare a Semnelor Vitale (ID: 163611)
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.
