Meranie pulzovej frekvencie.: Rozdiel medzi revíziami
Zo stránky SensorWiki
Riadok 56: | Riadok 56: | ||
[[Súbor:Popis_pinov_TSL235.png]] | [[Súbor:Popis_pinov_TSL235.png]] | ||
===Popis komunikačnej zbernice i2c:=== | |||
I²C (anglicky Inter-Integrated Circuit, čítame I-squared-C, nesprávne I-two-C) je multi-masterová počítačová sériová zbernica vyvinutá firmou Philips, ktorá je používaná na pripájanie nízkorýchlostných periférií k základnej doske, vstavanému systému alebo mobilnému telefónu. | |||
====Charakteristika==== | |||
Zbernica rozdeľuje pripojené zariadenia na riadiaci (master - zahajuje a ukončuje komunikáciu; generuje hodinový signál SCL) a riadené (slave - zariadenie adresované masterom). Podľa stavu k 1. októbru 2006 nie sú vyžadované žiadne licenčné poplatky pre implementáciu, avšak spoplatnené je prideľovanie adries pre slave zariadenia. [1] | |||
Zbernica I²C sa hojne používa v rôznych zariadeniach, vrátane IBM PC kompatibilných počítačov: | |||
• čítanie konfiguračných dát z SPD EEPROM v pamäťových DIMM moduloch (SDRAM, DDR SDRAM, DDR2) | |||
• správa PCI kariet pomocou spojenia SMBus 2.0 | |||
• prístup k NVRAM čipom obsahujúcich užívateľské nastavenia (na sieťovej karte, radičmi) | |||
• prístup k nízkorýchlostným D / A a A / D prevodníkom | |||
• zmena kontrastu, teploty farieb, vyváženie farieb v monitoroch (DDC) | |||
• zmena hlasitosti inteligentných reproduktorov | |||
• riadenie OLED a LCD displejov mobilných telefónov | |||
• čítanie údajov o monitorovaných zariadeniach (teplota procesora, rýchlosť vetráčikov) | |||
• čítanie hodín reálneho času | |||
• zapínanie a vypínanie napájania systémových komponentov | |||
Fyzická vrstva | |||
Umožňuje prepojenie až 128 rôznych zariadení s pomocou iba dvoch obojsmerných vodičov. Jeden tvorí hodinový signál SCL (Synchronous Clock) a druhý dátový kanál SDA (Synchronous Data). Z elektrického hľadiska sú oba kanály zapojené ako otvorený kolektor. Maximálna dĺžka vodičov je daná ich najvyššou povolenou kapacitou 400 pF. Každý vodič musí byť pripojený jedným pull-up rezistorom ku kladnému napätie, čo zabezpečí vysokú úroveň v kľudovom stave. Pri prebiehajúcom prenose sú na SDA vysielané jednotlivé dátové bity pričom platí pravidlo, že logická úroveň na SDA sa smie meniť len ak je SCL v úrovni L. Toto pravidlo je porušené v dvoch špeciálnych prípadoch. A to pri vysielaní podmienok START a STOP, ktoré sa používajú na zahájenie komunikácie a na ukončenie prenosu. | |||
Maximálna frekvencia signálu SCL je podľa verzie I2C 100 kHz alebo 400 kHz. Pre obe frekvencia je daná minimálna povolená doba zotrvania SCL v úrovni L a H. Pri komunikácii aj pri prenose dát si jednotlivé stanice synchronizujú generátory hodín tak, že trvanie úrovne H na SCL je odmeriavanie vnútorným časovačom každej stanice až od okamihu, keď SCL skutočne úrovne H dosiahne (pretože je SCL typu otvorený kolektor, môže byť v úrovni L držaný aj v situácii kedy sa daná stanica snaží nastaviť úroveň H). Podobne je doba trvania úrovne L na SCL odmeriavaná od zostupnej hrany. Tento mechanizmus umožňuje niektoré zo staníc spomaliť prenos: pomalá stanica môže podržať po určitú dobu signál SCL v úrovni L a tým zabrániť vysielajúcej stanici vo vyslanie ďalšieho bitu. Zbernice I2C neumožňuje duplexný prenos, v jednom | |||
okamihu vysiela len jedno zariadenie. Všetky zariadenia pripojené na zbernicu musí mať individuálnu adresu s dĺžkou 7 alebo 10 bitov a implementovaný mechanizmus komunikácie pomocou I²C zbernice | |||
časovy diagram | |||
Prenos dát sa začína START bitom (S), keď je SDA nízka, zatiaľ čo SCL zostáva vysoká. Potom, SDA nastaví prenášané bit kým SCL je nízka (modrá) a sú odobraté vzorky dát (prijaté) pri SCL stúpa (zelená). Keď je prenos dokončený, je poslaný STOP bit (P) pre uvoľnenie dátovej linky, zmenou SDA na vysokú, zatiaľ čo SCL je trvalo vysoký. Aby sa zabránilo falošne detekciu, je úroveň na SDA zmenený na negatívne hrane a je zachytený na kladné hrany SCL. | |||
Linková vrstva | |||
Každému prenosu predchádza vyslanie podmienky START. Potom je vysielaná 7 bitová adresa príjemcu a jeden bit R / W, ktorý indikuje požadovanú operáciu (čítanie / zápis). Ďalšia bit ACK je vysielaný s úrovňou H a je určený na potvrdenie prijímacej stanice o pripravenosti prijímať. Ďalej sú prenášané dáta v smere určenom predchádzajúcom bitom R / W. Každý bajt je nasledovaný jedným bitom ACK. Po ukončení prenosu je vyslaná podmienka STOP. | |||
riadenie komunikácie | |||
Pre riadenie komunikácie sa na I2C používa metóda s detekciou kolízie. Každá zo staníc môže začať vysielanie, ak je predtým zbernica v kľudovom stave. Počas vysielania musia neustále porovnávať vysielané bity sa skutočným stavom SDA. Ak je zistený rozdiel medzi očakávaným a skutočným stavom linky SDA, je to indikácia kolízie medzi niekoľkými stanicami. Vzhľadom k charakteru zbernice (otvorené kolektory) môže k tejto situácii dôjsť, ak určitá stanica vysiela úroveň H, zatiaľ čo iná stanica vysiela úroveň L. Stanica, ktorá na linke zistí úroveň L zatiaľ čo sama vysiela H musí vysielania okamžite ukončiť. K riadeniu komunikácia väčšinou dochádza počas vyslania niekoľkých prvých bitov, kedy je vysielaná adresa prijímacej stanice. Ak by sa napríklad. Dve stanice súčasne pokúsili o zápis do rovnakého obvodu, nastane kolízia až pri prenose vlastných zapisovaných dát. V krajnom prípade, keď viaceré staníc súčasne zapisuje rovnaké dáta na rovnakú adresu, nemusí byť kolízie vôbec detekovaná. | |||
adresovanie | |||
Každá stanica pripojená na I2C má pridelenú 7 bitovú adresu. Po zachytení podmienky START porovnávajú všetky obvody svoju adresu s adresou, ktorá je vysielaná na zbernici. Ak zistí niektorý z obvodov zhodu, je vysielanie určené práve jemu a musí prijatie adresy potvrdiť bitom ACK. Potom prijíma alebo vysiela ďalšie dáta. Niekoľko adries je na I2C vyhradené pre špeciálne účely. Napríklad adresa 0000000 je určená pre vysielanie broadcast adresy 0000011, 00001XX a 11111XX sú rezervované pre ďalšie účely. | |||
potvrdzovanie | |||
Každý vysielaný byte a vyslaná adresa je nasledovaná vyslaním jedného bitu ACK. Vysielajúca stanica ho vysiela v úrovni H. Prijímajúca stanica potvrdzuje prijatie tým, že v čase vysielania ACK pripojí SDA na úroveň L. Ak vysielajúca stanica nedostane potvrdenie príjmu, ukončí vysielanie podmienkou STOP. | |||
* popis komunikačnej zbernice (i2c, 1-wire, RS-232 a pod.) | * popis komunikačnej zbernice (i2c, 1-wire, RS-232 a pod.) |
Verzia z 20:49, 12. január 2015
Autori: | Ján Lechvár, Bc., Stanislav Slaminka, Bc. | |
Študijný odbor: | Aplikovaná mechatronika | 2. Ing. (2014/2015) |
Zadanie
Pomocou senzoru TSL235 zmerajte pulzovú frekvenciu. Popíšte princíp merania a vyhodnotenia signálu, zmerajte ukážkové data a vyhodnoťte meranie.
Literatúra:
- Zoznam použitej literatúry, vrátane katalógových údajov (datasheet), internetových odkazov a pod.
Analýza
Úlohou nášho zadania je meranie pulzovej frekvencie nášho srdca pomocou senzora TSL235. Dáta z tohto senzora sú sériovo prenášané po I2C zbernici. Výstup senzora je pripojený na pin D8 na portuB, ktorý je nastavený ako vstup mikrokontroléra Atmega 328P, ktorý je umiestnený na vývojovej doske Acrob. Pre lepšie výsledky sme meranie vykonávali v tme, kde sme ako svetelný zdroj použili LED.
![](/sensorwiki/images/8/8b/AcrobBoard.jpg)
Parametre senzora TSL235:
- Max. napájacie napätie: Vdd = 6V
- Napájací prúd: Idd = max 3 mA
- Odporúčanie napájanie: Vdd = 2,7V – 5,5V
- Prevádzková teplota: Ta = -25°C – 70°C
- Teplota uskladnenia: Tstg = -25 °C – 85°C
- Výstupná frekvencia: fo = 200-300kHz
Rozloženie pinov senzora TSL235:
Popis pinov senzora TSL235:
Popis komunikačnej zbernice i2c:
I²C (anglicky Inter-Integrated Circuit, čítame I-squared-C, nesprávne I-two-C) je multi-masterová počítačová sériová zbernica vyvinutá firmou Philips, ktorá je používaná na pripájanie nízkorýchlostných periférií k základnej doske, vstavanému systému alebo mobilnému telefónu.
Charakteristika
Zbernica rozdeľuje pripojené zariadenia na riadiaci (master - zahajuje a ukončuje komunikáciu; generuje hodinový signál SCL) a riadené (slave - zariadenie adresované masterom). Podľa stavu k 1. októbru 2006 nie sú vyžadované žiadne licenčné poplatky pre implementáciu, avšak spoplatnené je prideľovanie adries pre slave zariadenia. [1] Zbernica I²C sa hojne používa v rôznych zariadeniach, vrátane IBM PC kompatibilných počítačov: • čítanie konfiguračných dát z SPD EEPROM v pamäťových DIMM moduloch (SDRAM, DDR SDRAM, DDR2) • správa PCI kariet pomocou spojenia SMBus 2.0 • prístup k NVRAM čipom obsahujúcich užívateľské nastavenia (na sieťovej karte, radičmi) • prístup k nízkorýchlostným D / A a A / D prevodníkom • zmena kontrastu, teploty farieb, vyváženie farieb v monitoroch (DDC) • zmena hlasitosti inteligentných reproduktorov • riadenie OLED a LCD displejov mobilných telefónov • čítanie údajov o monitorovaných zariadeniach (teplota procesora, rýchlosť vetráčikov) • čítanie hodín reálneho času • zapínanie a vypínanie napájania systémových komponentov Fyzická vrstva Umožňuje prepojenie až 128 rôznych zariadení s pomocou iba dvoch obojsmerných vodičov. Jeden tvorí hodinový signál SCL (Synchronous Clock) a druhý dátový kanál SDA (Synchronous Data). Z elektrického hľadiska sú oba kanály zapojené ako otvorený kolektor. Maximálna dĺžka vodičov je daná ich najvyššou povolenou kapacitou 400 pF. Každý vodič musí byť pripojený jedným pull-up rezistorom ku kladnému napätie, čo zabezpečí vysokú úroveň v kľudovom stave. Pri prebiehajúcom prenose sú na SDA vysielané jednotlivé dátové bity pričom platí pravidlo, že logická úroveň na SDA sa smie meniť len ak je SCL v úrovni L. Toto pravidlo je porušené v dvoch špeciálnych prípadoch. A to pri vysielaní podmienok START a STOP, ktoré sa používajú na zahájenie komunikácie a na ukončenie prenosu. Maximálna frekvencia signálu SCL je podľa verzie I2C 100 kHz alebo 400 kHz. Pre obe frekvencia je daná minimálna povolená doba zotrvania SCL v úrovni L a H. Pri komunikácii aj pri prenose dát si jednotlivé stanice synchronizujú generátory hodín tak, že trvanie úrovne H na SCL je odmeriavanie vnútorným časovačom každej stanice až od okamihu, keď SCL skutočne úrovne H dosiahne (pretože je SCL typu otvorený kolektor, môže byť v úrovni L držaný aj v situácii kedy sa daná stanica snaží nastaviť úroveň H). Podobne je doba trvania úrovne L na SCL odmeriavaná od zostupnej hrany. Tento mechanizmus umožňuje niektoré zo staníc spomaliť prenos: pomalá stanica môže podržať po určitú dobu signál SCL v úrovni L a tým zabrániť vysielajúcej stanici vo vyslanie ďalšieho bitu. Zbernice I2C neumožňuje duplexný prenos, v jednom okamihu vysiela len jedno zariadenie. Všetky zariadenia pripojené na zbernicu musí mať individuálnu adresu s dĺžkou 7 alebo 10 bitov a implementovaný mechanizmus komunikácie pomocou I²C zbernice časovy diagram
Prenos dát sa začína START bitom (S), keď je SDA nízka, zatiaľ čo SCL zostáva vysoká. Potom, SDA nastaví prenášané bit kým SCL je nízka (modrá) a sú odobraté vzorky dát (prijaté) pri SCL stúpa (zelená). Keď je prenos dokončený, je poslaný STOP bit (P) pre uvoľnenie dátovej linky, zmenou SDA na vysokú, zatiaľ čo SCL je trvalo vysoký. Aby sa zabránilo falošne detekciu, je úroveň na SDA zmenený na negatívne hrane a je zachytený na kladné hrany SCL.
Linková vrstva Každému prenosu predchádza vyslanie podmienky START. Potom je vysielaná 7 bitová adresa príjemcu a jeden bit R / W, ktorý indikuje požadovanú operáciu (čítanie / zápis). Ďalšia bit ACK je vysielaný s úrovňou H a je určený na potvrdenie prijímacej stanice o pripravenosti prijímať. Ďalej sú prenášané dáta v smere určenom predchádzajúcom bitom R / W. Každý bajt je nasledovaný jedným bitom ACK. Po ukončení prenosu je vyslaná podmienka STOP.
riadenie komunikácie Pre riadenie komunikácie sa na I2C používa metóda s detekciou kolízie. Každá zo staníc môže začať vysielanie, ak je predtým zbernica v kľudovom stave. Počas vysielania musia neustále porovnávať vysielané bity sa skutočným stavom SDA. Ak je zistený rozdiel medzi očakávaným a skutočným stavom linky SDA, je to indikácia kolízie medzi niekoľkými stanicami. Vzhľadom k charakteru zbernice (otvorené kolektory) môže k tejto situácii dôjsť, ak určitá stanica vysiela úroveň H, zatiaľ čo iná stanica vysiela úroveň L. Stanica, ktorá na linke zistí úroveň L zatiaľ čo sama vysiela H musí vysielania okamžite ukončiť. K riadeniu komunikácia väčšinou dochádza počas vyslania niekoľkých prvých bitov, kedy je vysielaná adresa prijímacej stanice. Ak by sa napríklad. Dve stanice súčasne pokúsili o zápis do rovnakého obvodu, nastane kolízia až pri prenose vlastných zapisovaných dát. V krajnom prípade, keď viaceré staníc súčasne zapisuje rovnaké dáta na rovnakú adresu, nemusí byť kolízie vôbec detekovaná. adresovanie Každá stanica pripojená na I2C má pridelenú 7 bitovú adresu. Po zachytení podmienky START porovnávajú všetky obvody svoju adresu s adresou, ktorá je vysielaná na zbernici. Ak zistí niektorý z obvodov zhodu, je vysielanie určené práve jemu a musí prijatie adresy potvrdiť bitom ACK. Potom prijíma alebo vysiela ďalšie dáta. Niekoľko adries je na I2C vyhradené pre špeciálne účely. Napríklad adresa 0000000 je určená pre vysielanie broadcast adresy 0000011, 00001XX a 11111XX sú rezervované pre ďalšie účely. potvrdzovanie Každý vysielaný byte a vyslaná adresa je nasledovaná vyslaním jedného bitu ACK. Vysielajúca stanica ho vysiela v úrovni H. Prijímajúca stanica potvrdzuje prijatie tým, že v čase vysielania ACK pripojí SDA na úroveň L. Ak vysielajúca stanica nedostane potvrdenie príjmu, ukončí vysielanie podmienkou STOP.
- popis komunikačnej zbernice (i2c, 1-wire, RS-232 a pod.)
- obrázok zapojenia vývodov použitej súčiastky
- odkaz na katalógový list
- priebehy dôležitých signálov
Popis riešenia
Sem opíšete ako konkrétne ste problém vyriešili. Začnite popisom pripojenia k procesoru (nezabudnite na schému zapojenia!) a zdôraznite ktoré jeho periférie ste pritom využili.
Pozn.: Názov obrázku musí byť jedinečný, uvedomte si, že Obr1.jpg už pred vami skúsilo nahrať už aspoň 10 študentov.
Algoritmus a program
Uveďte stručný popis algoritmu, v akom jazyku a verzii vývojového prostredia ste ho vytvorili. Je vhodné nakresliť aspoň hrubú štruktúru programu napríklad vo forme vývojového diagramu. Rozsiahly program pre lepšiu prehľadnosť rozdeľte do viacerých súborov.
Vyberte podstatné časti zdrojového kódu, použite na to prostredie source:
/* A nezabudnite zdroják hojne komentovať */
int main(void) {
printf("Hello, World!\n");
return(0);
}
Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!
Zdrojový kód: serial.h a main.c
Overenie
Nezabudnite napísať čosi ako užívateľský návod. Z neho by malo byť jasné čo program robí, ako sa prejavuje a aké má užívateľské rozhranie (čo treba stlačiť, čo sa kde zobrazuje). Ak ste namerali nejaké signály, sem s nimi. Ak je výsledkom nejaký údaj na displeji, odfotografujte ho.
Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.