|
|
(32 medziľahlých úprav od rovnakého používateľa nie je zobrazených.) |
Riadok 1: |
Riadok 1: |
|
| |
|
| == '''1-WireZbernica''' ==
| |
|
| |
| ----
| |
|
| |
| Ako už z názvu vyplýva ide o jednovodičové sériove rozhranie s možnosťou polo duplexnej obojsmernej komunikácie. Zbernica sa skladá v podstate z dvoch vodičov a to dátového a zemiaceho. Dátový vodič slúži zároveň na napájanie zariadeni pripojených na tuto zbernicu.
| |
|
| |
| '''Oblasti použitia napr:'''
| |
|
| |
| - identifikačné systémy
| |
|
| |
| - senzory (teploty, vlhkosti a podobne )
| |
|
| |
| - digitálne potenciometre a iné
| |
|
| |
| [[Súbor:1Wire.gif]]
| |
|
| |
|
| |
|
| |
| '''Vlastnosti:'''
| |
|
| |
| - dĺžka vodiča až 100m
| |
|
| |
| - na jednu linku je možné pripojiť do 150 zariadení s unikátnym sériovým číslom
| |
|
| |
| - zabezpečenie pomocou 8-bitového CRC kódu
| |
|
| |
| - obojsmerná poloduplexná prevádzka
| |
|
| |
| - identifikácia zariadenia na základe 8-bajtového sériového čísla a 1-bajtovej informácie o type zariadenia
| |
|
| |
| - realizácia prepojenia je pomocou skrútenej dvojlinky – twisted pair
| |
|
| |
|
| |
| '''Zapojenie:'''
| |
| Zariadenia sú trvalo pripojené na napájacie napätie „PullUp“ rezistor obr.1
| |
|
| |
| [[Súbor:Blokova.jpg]]
| |
|
| |
|
| |
| ==='''Komunikacia'''===
| |
|
| |
| Komunikácia je inicializovaná mikropočítačom zmenou úrovne napätia na zbernici na 0 V. Komunikácia je založená na takzvaných „časových slotoch“, čiže od závislosti doby trvania poklesu úrovne napätia je slave zariadením identifikovaný typ operácie (zápis log.1 alebo log.0, čítanie log.1 alebo log.0, reset a identifikácia zariadenia).
| |
| :
| |
| ===='''Inicializácia''' ====
| |
| :- Na začiatku uPC (master) ztiahne zbernicu k zemi (cez pull up rezistor) na minimálne 480us, potom ju uvoľní.
| |
| :- Na uvoľnenie zbernice a vrátenie do kľudového stavu je potrebných 60us. Po tejto dobe je možné prečítať stav zbernice.
| |
| :- Ak je na zbernici pripojené nejaké zariadenie, odpovedá ztiahnutím zbernice na dobu 60 až 240 us. Ak sa na zbernici nenacháda žiadne zariadenie, zbernica ostáva po celú dobu v kľudovom stave.
| |
| :- Celková dĺžka trvania inicializačného procesu je minimálne 2x480us, teda až po dobe 960us môže prísť ďalší signál od mástra.
| |
|
| |
| [[Súbor:Reset_Pulse.png]]
| |
| :
| |
| ===='''Vysielanie'''====
| |
| :'''Log 1'''
| |
| : - stiahnutie zbernice po dobu mnimálne 1us.
| |
| : - uvoľnenie zbernice.
| |
| : - dĺžka slotu pre zápis je v rozsahu 60 až 120us.
| |
|
| |
| :'''Log 0'''
| |
| : - stiahnutie zbernice po dobu mnimálne 60us.
| |
| : - uvoľnenie zbernice.
| |
| : - dĺžka slotu pre zápis je v rozsahu 60 až 120us.
| |
|
| |
| ===='''Čítanie'''====
| |
| : - čítanie je inicializované mástrom. Ten najprv stiahne zbernicu po dobu minimálne 1us, následne ju uvoľní.
| |
| : - následuje čítanie zbernice mástrom. To je inicializované po minimálne 15us od začiatku slotu (ten je určený počiatkom stiahnutia zbernice mastrom).
| |
| : - ak slave chce vyslať log 1, ponechá zbernicu uvoľnenú až do konca slotu (master prečíta log 1 - uvoľnená zbernica).
| |
| : - ak slave chce vyslať log 0, ztiahne zbernicu (master prečíta log 0 - ztiahnutá zbernica).
| |
| : - celková dĺžka slotu čítania je 60 až 120us.
| |
| [[Súbor:Zapis_Citanie_1wire.png]]
| |
|
| |
|
| |
| ==='''Priebeh komunikacie na zbernici 1Wire'''===
| |
|
| |
| Každé zariadenie obsahuje výrobcom nastavenú 64-bitovú informáciu v internej ROM pamäti. Prvých horných 8 bitov slúži na zabezpečenie CRC kódom, potom nasleduje 48-bitové sériové číslo zariadenia a dolných 8 bitov tvorí kód identifikujúci typ zariadenia. Táto 64-bitová informácia je unikátna pre každé vyrobené zariadenie s možnosťou tak jednoznačnej identifikácie aj viacerých zariadení rovnakého typu pripojených na jednu linku. Master vyšle resetovací impulz a Slave mu odpovie
| |
|
| |
| [[Súbor:ramec1Wire.png]]
| |
|
| |
|
| |
| V našom prípade sme pracovali so snímačmi teploty s označením DS18B20.
| |
| Preto sú na obrázkoch vyššie použité pre lepšie pochopenie komunikácie na zbernici informácie z datasheetu snímača DS18B20
| |
| [[http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf|datasheet]].
| |
|
| |
| == '''Teplotný Senzor DS18B20''' ==
| |
| '''Popis'''
| |
| * napájanie je 3,0V – 5,5V
| |
| * rozsah meranej teploty od –55°C do +125°C (-67°F do +257°F)
| |
| * presnosť 0,5°C v rozmedzí –10°C do +85°C
| |
| * rozlíšenie senzora je voliteľné v rozsahu 9 až 12 bit
| |
|
| |
| [[Súbor:reset_1_wire.png]]
| |
|
| |
| [[Súbor:vysielanie_na_1_wire.png]]
| |
|
| |
| [[Súbor:Citanie_z_1_wire.png]]
| |
|
| |
| <source lang="c">
| |
|
| |
| </source>
| |
|
| |
|
| |
| == '''Program''' ==
| |
|
| |
| Popis funkcie zariadenia
| |
| Zariadenie ma za úlohu odmerať teplotu na viacerých snímačoch (v tomto prípade dvoch). Následne tieto hodnoty zobraziť na displeji.
| |
| Snímače sú pripojené k zberici 1-wire. Identifikácia jednotlivých snímačov je základe ich jedinečného sériového čísla.
| |
| Snímače využívajú v zapojení tri vodiče. Dátový vodič, vodič pre napájanie snímača a spoločný neutrálny vodič.
| |
|
| |
| schéma zapojenia snímača
| |
| - tu vlozit obrázok DS18B20_externe_napajanie (v zlozke s obrazkami)
| |
|
| |
| Bloková schéma celého zapojenia
| |
| - tu vlozit blokovku zapojenia procak + LCD + snimače + zdroj (ešte nemame urobenu blokovku)
| |
|
| |
| Program
| |
| Program je písaný v jazyku C, v AVR Studio 4, určenom pre prácu so zariadeniami firmy Atmel.
| |
| Použitý je 8-bitový mikrkontrolér s označením ATmega16.
| |
| Pre komunikáciu so snímačmi teploty je použitý pin 0 portu A.
| |
| pre komunikáciu s LCD displejom sú využívané piny 0 až 5 portu C.
| |
|
| |
| Využívané piny
| |
| Port A
| |
| pin 0: 1-wire komunikacia
| |
|
| |
| Port C
| |
| pin 0: treti datovy bit
| |
| pin 1: druhy datovy bit
| |
| pin 2: prvy datovy bit
| |
| pin 3: nulty datovy bit
| |
| pin 4: enable pin
| |
| pin 5: RS pin
| |