1-Wire je sběrnice navržená firmou Dallas Semiconductor Corp. pro komunikaci zařízení nízkou datovou rychlostí, signalizaci i napájení. 1-Wire je podobná ke sběrnici I²C, jen s nižší datovou propustností a delším dosahem. Obvykle je používána pro komunikaci s malými levnými zařízeními jako jsou termometry a další různá zařízení. Síť z 1-Wire zařízení s připojeným master zařízením se nazývá MicroLAN.[1] Někdy je také tato síť označována jako μLAN.[2][3]
Jedním charakteristickým rysem sběrnice je možnost použití pouze dvou drátů: dat a země bez nutnosti vést napájecí vodič. 1-Wire zařízení mohou být napájena buď z vlastního zdroje napětí (například baterie, akumulátor) nebo mohou být napájeny z datového vodiče. Pro tento účel mohou obsahovat kondenzátor k uchování náboje pro napájení zařízení během času, kdy je aktivní datový přenos. Velikost kondenzátoru se liší u různých zařízení. Jeho hodnota bývá 800 pF a více.[3][4]
V závislosti na funkci, 1-Wire zařízení jsou k dispozici jako komponenty v podobě integrovaných obvodů, v některých případech v přenosné formě nazývané iButton, který se podobá knoflíkové baterii do hodinek. Výrobci také vyrábějí zařízení, které používají sběrnici 1-Wire pro komunikaci a jsou složitější, než integrované komponenty.
1-Wire zařízení může být jedním z mnoha komponent na desce obvodu, nebo jen jediný prvek v zařízení, jako je třeba teplotní čidlo, nebo může být připojené k zařízení, které je monitorované. Je možné připojit 1-Wire zařízení přes modulární konektor, nebo CAT-5 kabel k zařízení v socketu, k malé PCB desce, nebo k dalšímu sledovanému prvku. V tomto případě je populární konektor RJ11 (6P2C nebo 6P4C).
Systém senzorů a akčních členů může být zapojen dohromady pomocí 1-Wire komponent. Každá složka obsahuje všechnu logiku nutnou k provozu na sběrnici 1-Wire. Příkladem jsou zařízení k záznamu teplot, časovače, senzory napětí a proudu, monitorování stavu baterii a paměti . Ty mohou být připojeny k PC pomocí zařízení ke změně typu sběrnice. USB, RS-232, sériové a paralelní porty rozhraní jsou populární řešení pro připojení MicroLan k hostitelskému počítači. 1-Wire zařízení mohou být také připojeny přímo na mikroprocesory od různých dodavatelů.
iButton (také známý jako Dallas key) je standardní obal, který umístí 1-Wire zařízení do malého „tlačítka“ z nerezové oceli, podobného kulaté hodinkové baterii. iButtons jsou napojeny na sběrnici 1-Wire pomocí drobného kontaktu umístěného v nízkém válečku. Alternativně může být iButton ve „vycvakávacím“ pouzdře, například na klíče.
Java prsten je prsten s integrovaným iButton obsahující Java Virtual Machine kompatibilní se standardem Java Card 2.0 představeným v roce 1998 na JavaOne konferenci.
Každé 1-Wire zařízení má unikátní ID kód. Tato vlastnost dělá čipy, zvlášť v iButton obalu, ideální pro otevírání zámků, zakódování alarmů, autorizaci přístupu k počítači atd. iButton byl použit jako lístek hromadné dopravy v Istanbulu.
V každé MicroLan sběrnici je vždy jen jeden master, kterým může být počítač, nebo mikroprocesor. Master začne činnost na sběrnici, což zjednodušuje vzniku kolizí na sběrnici. Protokoly jsou v softwaru vytvořeny tak, aby detekovaly kolize. Po kolizi se master opět pokusí o komunikaci.
Stejnou sběrnici může sdílet více zařízení. Každé zařízení na sběrnici má unikátní sériové 64bitové číslo. Nejméně významný bajt sériového čísla je 8bitové číslo, které určuje typ zařízení. Nejvýznamnější bajt je standardní (pro sběrnici 1-Wire) 8bitový CRC.
Existuje několik standardních příkazů pro vysílání broadcast, i pro adresaci konkrétních zařízení. Master může vyslat příkaz pro výběr a pak adresu konkrétního zařízení. Další příkaz je proveden pouze adresovanému zařízení.
Protokol enumerace 1-wire sběrnice (popsáno později) je algoritmus použitý masterem ke čtení adresy každého zařízení na sběrnici. Adresa zahrnuje typ zařízení a CRC a tvoří spolehlivý soupis zařízení na sběrnici. 64 bit adresní prostor je prohledán jako binární strom, který umožňuje identifikovat až 75 zařízení za sekundu, která se nacházejí na sběrnici.
Dallas 1-Wire síť je fyzicky implementována jako master s otevřeným kolektorem, který je připojený k jednomu nebo více slavům, také s otevřeným kolektorem. Jeden pull-up rezistor je společný pro všechna zařízení, na sběrnici dovoluje napětí až na 3, nebo 5 voltů a může poskytnout energii pro slave zařízení. Komunikace se zahájí, když master nebo slave stáhne sběrnici k nule, tj. spojí rezistor na zem přes MOSFET výstup. Jsou k dispozici konkrétní 1-Wire zařízení pro ovládání i přemostění. Lze dosáhnout přenosové rychlosti až 16,3 kb/s. K dispozici je také režim overdrive, který urychluje komunikaci násobkem 10.
Master zahájí přenos reset pulsem, který stáhne sběrnici na 0 voltů po dobu nejméně 480 µs. To zresetuje všechna podřízená zařízení na sběrnici. Potom se jakýkoliv přítomný slave ukáže pomocí impulsu: podrží sběrnici na nule po dobu nejméně 60 µs potom, co ji master uvolní.
Pro poslání „1“, master vyšle velmi krátký (1–15 µs) široký puls. Pro poslání „0“, master vyšle 60 µs široký puls. Klesající (sestupná) hrana pulsu se používá ke spuštění monostabilního multivibrátoru ve slave zařízení. Multivibrátor slave zařízení čte sběrnici 30 µs po sestupné hraně. Multivibrator slave zařízení má nevyhnutelné analogové odchylky, které ovlivňují jeho přesnost časování, což je důvod, proč výstupní impuls musí být 60 µs dlouhý a počáteční puls nemůže být delší než 15 µs.
Když není k dispozici 1-wire periferie, může UART implementovat master sběrnice. Sériové nebo USB čipy k přemostění jsou k dispozici, zvládnou požadavky na načasování a časový průběh 1-Wire sběrnice. Jsou zvláště užitečné pro efektivní využití dlouhých vedení (delších než 100 m). Až 300 m dlouhé sběrnice skládající se z jednoduché kroucené dvojlinky byly testovány výrobcem. Vyžaduje to však úpravu pull-up odporů na 5 až 1 kΩ.
Při přijímání dat, master odešle 1–15 µs impuls 0 V na začátku každého bitu. Pokud vysílací podřízená jednotka chce poslat „1“, nedělá nic a sběrnice zvedne pull-up napětí. Pokud vysílací slave chce poslat „0“, stáhne sběrnici na nulu po dobu 60 µs.
Základní sekvence je reset puls následovaný 8 bity příkazu a potom odesílaná, nebo přijímaná data ve skupinách 8 bitů.
Když jsou data přenášena, chyby mohou být detekovány pomocí 8bitové CRC (slabá ochrana dat).
Chce-li najít master zařízení, vyšle na sběrnici příkaz a do jednotlivých bitů adresy zapisuje. Po každém bitu „naslouchá“. Pokud slavu postupně souhlasí všechny adresované bity, vrátí po každém bitu 0. Master používá tento jednoduchý způsob k systematickému vyhledání platné sekvence bitů adresy. Tento proces je mnohem rychlejší, než hrubá síla pro vyhledávání všech možných 64bitových čísel. Jakmile je detekován jiný bit, všechny následující adresové bity jsou neplatné. Výčet 10–15 zařízení dokončí velmi rychle.
V tomto článku byl použit překlad textu z článku 1-wire na anglické Wikipedii.