1-Wire

1-Wire on Dallas Semiconductorin kehittämä kaksisuuntainen hitaan tiedonsiirron väylä. Väylää käytetään tyypillisesti yksinkertaisten, vähävirtaisten laitteiden, kuten lämpöantureiden tms. ohjaukseen.

Väylän erikoisuutena on mahdollisuus käyttää vain kahta johdinta: maapotentiaali ja data. Tällöin dataväylän virralla varataan väylään kytketyssä laitteessa oleva kondensaattori, jonka virralla laite toimii liikennöinnin ajan.

Väylä toimii aina master/slave-periaatteella, jolloin yksi laite ohjaa muita siihen kytkettyjä 1-Wire-laitteita. Samaan väylään voi kytkeä useita mittalaitteita, jotka tunnistetaan yksilöllisellä 64-bittisellä ROM-koodilla, joka tyypillisesti kirjoitetaan laitteelle laserilla valmistuksen aikaan.

Isännän ja yhden laitteen järjestelmästä käytetään termiä single-drop ja isännän ja usean laitteen järjestelmästä termiä multidrop tai MicroLAN.

Protokolla

Isäntä aloittaa liikennöinnin tyypillisesti reset-pulssilla vetämällä väylän 0 voltin jännitteeseen vähintään 480 mikrosekunnin ajaksi. Tämä nollaa kaikki väylään liitetyt laitteet. Nollauksen jälkeen jokainen laite ilmoittaa olemassaolostaan presence-signaalilla vähintään 60 µs 0-pulssilla.

Väylällä bitti '1' on 1-15 mikrosekunnin nollapulssi ja '0' 30-60 mikrosekunnin pulssi.

Väylän laitteet on löydettävä ennen niiden käyttöä. Tämä tapahtuu enumeraatiolla. Isäntä käy läpi 64-bittisiä osoitekoodeja bitin kerrallaan ja kuuntelee jokaisen bitin jälkeen. Jokainen laite jonka osoitteen alkuosa vastaa siihen mennessä lähetettyjä bittejä vastaa.

Lähteet

  • DS18B20 Programmable Resolution 1-Wire Digital Thermometer (PDF)

Aiheesta muualla

  • W1-GPIO - One-Wire Interface, Raspberry Pi ja Linux-ympäristöön
  • Dallas Semiconductor's 1-Wire Protocol, Arduino