Jste zde

1-Wire komunikace – efektivní připojení senzoru

Ke koncovým bodům IoT se obvykle připojují senzory, které jsou od mikrokontroleru vzdáleny více než jeden metr. Senzory většinou mají k dispozici rozhraní SPI nebo I²C, ale ty nemohou komunikovat na dlouhou vzdálenost. Navíc řídicí algoritmy jsou stále komplikovanější a někdy je nutné připojit i více senzorů. To zvyšuje složitost zapojení a náklady na konfiguraci i údržbu, zejména s rostoucí vzdáleností senzoru od mikrokontroleru. Proto je tu komunikační protokol 1-Wire.

V tomto článku si ukážeme, jak používat 1-Wire protokol od Maxim Integrated, abychom dosáhli nákladově efektivního připojení senzoru pouze pomocí jednoho vodiče a uzemnění. Přes jeden vodič se přenášejí data a také se zajišťuje napájení. Dále se dozvíme o možnosti převodu signálu 1-Wire na SPI nebo I²C a představíme si vývojovou sadu včetně software, se kterou lze ihned začít prozkoumávat výhody protokolu 1-Wire.

Rozmach používání senzorů v IoT i průmyslu

Díky rozšíření sítí IoT došlo k zefektivnění systémů a výrobních procesů, jelikož rozhodovací procesy získaly více dat skrz připojené senzory. V průmyslové nebo komerční budově může každá místnost obsahovat teplotní i vlhkostní senzor, senzor CO2 či senzor tlaku a získat tak kompletní informaci o dané místnosti. Dále mohou být umístěny další senzory do potrubí pro vytápění, větrání a klimatizaci (HVAC). Bezpečnostní systémy mohou také používat různé typy senzorů a mohou být také umístěny na více místech.

Výrobní a dopravníkové systémy také zaznamenávají nárůst používání senzorů pro monitorování procesů a analýzu dat. Z této analýzy pak lze zefektivnit celkový systém, zlepšit bezpečnost a uspořit energii. Nejběžnějšími senzory jsou ty, které monitorují prostředí. Sem patří monitoring teploty, vlhkosti a tlaku. Dále se používají vizuální senzory, například senzory přiblížení a snímače polohy, mezi které patří akcelerometry a gyroskopy MEMS a snímače vibrací.

Miniaturizace a pokroky v technologiích MEMS vyústily v senzory, které mají miniaturní velikost a jejich spotřeba je jen několik mA. Většina těchto senzorů je snadno dostupná prostřednictvím komunikačního rozhraní SPI nebo I²C.

V některých případech se stále používají analogová čidla, například vysokoteplotní termočlánky a některá tlaková čidla. V těchto případech je mikrokontroler v místě senzoru propojen s analogově-digitálním převodníkem pomocí SPI nebo I²C, který vzorkuje analogový senzor lokálně. Tím se zabrání poklesu napětí na analogových senzorových linkách, a tím se zvýší přesnost.

Propojení se vzdálenými senzory SPI a I²C

I²C je schopno spolehlivě komunikovat do vzdálenosti jednoho metru nebo méně a SPI je na tom podobně. Plně duplexní SPI navíc vyžaduje čtyři linky, včetně individuálního výběru periferií pro každý z nich. Výsledkem je, že dosažení čtyř periferií SPI na sběrnici vyžaduje sedm linek plus napájení a uzemnění, celkem tedy devět linek.

Half-duplex I²C vyžaduje dvě linky plus napájení a uzemnění, celkem tedy čtyři linky. Mnoho vysokorychlostních signálů současně zvyšuje elektromagnetické rušení (EMI), které může generovat přeslechy, a to má za následek snížení integrity signálu a snížení spolehlivosti systému. Řešením je tedy snížení počtu linek pro napájecí a data při zachování kompatibility se stávajícími senzory I²C a SPI.

Aby se vyřešil problém připojení k senzorům vzdálených od mikrokontroleru a současně se snížil počet vodičů, vyvinula společnost Maxim Integrated protokol 1-Wire, který komunikuje pomocí jednoho vodiče a uzemnění. Protokol snižuje počet šesti vodičů SPI a čtyř vodičů I²C na pouhé dva vodiče, které přenášejí data i napájení na vzdálenost až 100 metrů.

Použití protokolu 1-Wire

Senzory s rozhraním SPI či I2C lze připojit pomocí protokolu 1-Wire díky převodníku (můstku) 1-Wire communications bridge. 1-Wire bridge i senzor jsou napájeny pouze jedním vodičem a zemí. Zatímco SPI i I²C používají vyhrazený hodinový signál, 1-Wire prokládá hodiny s datovým signálem.

SPI adresuje konkrétní periferii pomocí samostatného výběrového signálu a I²C používá 7bitovou adresu sběrnice přenášenou po datové lince. 1-Wire používá 56bitovou adresu, která je součástí každého jednotlivého komunikačního mostu. Tento širší rozsah adresování nejen zvyšuje počet unikátních jednotek (senzorů) na sběrnici, ale také zvyšuje zabezpečení tím, že útočníkovi ztěžuje uhodnutí adresy senzoru na sběrnici 1-Wire.

Velikost slova na 1-Wire je 8 bitů. Mikrokontroler s 1-Wire protokolem může komunikovat pomocí tzv. bit-bang, ale je také podporován ovladač UART. To umožňuje, aby i 8bitový mikrokontroler byl hostitelem 1bitové sběrnice. 1bitová sběrnice může obsahovat zařízení SPI nebo I²C, ale ne obojí. To předchází konfliktům a kolizím na sběrnici a zjednodušuje programování.

Praktické řešení 1-Wire

Pro připojení senzorů s rozhraním SPI nebo I²C přes 1-Wire sběrnici nabízí Maxim Integrated převodník 1-Wire-to-I²C/SPI bridge DS28E18Q+T s příkazovým sekvencerem (obrázek 1).

Obrázek 1: Převodník Bridge DS28E18Q+T 1-Wire-to-I²C/SPI s příkazovým sekvencerem. (Zdroj obrázku: Maxim Integrated)

Energie je extrahována ze sběrnice, když je na pinu IO vysoká úroveň, a tato energie je k dispozici na pinu SENS_VDD napájení periferie. Bridge ukládá data do mezipaměti a překládá příkazy 1-Wire do příslušných příkazů I²C nebo SPI.

IO pin a GND se připojují k 1-Wire sběrnici a jsou odeslány do front-endu s jeho stavovým automatem. Každé zařízení je identifikováno 56bitovým ID uloženým v ROM paměti s 8bitovou předponou, která označuje revizi DS28E18Q+T. Tím je zaručena jedinečná identifikace konkrétního DS28E18Q+T. Pro zařízení s 8bitovým CRC existuje 48bitové jedinečné sériové číslo.

Front-end odesílá přeložená data do příkazového sekvenceru pomocí 144bajtové vyrovnávací paměti, která obsahuje 128 bytů dat ze sběrnice IO a 16 bytů pro interní použití. Sekvencer zpracovává příkazy a ve své vyrovnávací paměti může uložit až 512 bajtů příkazů I²C nebo SPI, které budou později odeslány na periferní zařízení.

Tato vyrovnávací paměť (512 bajtů) také umožňuje DS28E18Q+T koordinovat vlastní chování interního napájení, takže načasování komunikace s periferním zařízením umožňuje zachování napájení pro připojené senzory. Příkazový sekvencer udržuje toto časování, když odesílá instrukce do I²C/SPI Master a GPIO řadiče, který zpracovává data tak, aby odpovídala standardům I²C a SPI.

K pinu CEXT je připojen externí kondenzátor 470 nF, který funguje jako výkonová rezerva pro DS28E18Q+T během provozu 1-Wire sběrnice. Pro připojené periferie je na pinu SENS_VDD k dispozici napájení.

Pro provoz SPI jsou poskytnuty čtyři piny SS#, MISO, MOSI a SCLK, které zaručují plně duplexní komunikaci. Provoz I²C používá pouze dva piny SDA a SCL. Piny SS# a MISO pro provoz SPI nejsou pro provoz I²C použity, a lze je tedy použít jako univerzální I/O (GPIO) s funkcí GPIOA a GPIOB. Tyto volné piny lze použít k rozsvícení diagnostických LED v místě senzoru nebo ke správě konfiguračních pinů na senzoru nebo k ovládání ADC převodníku. Pomocí DS28E18Q+T může jeden UART na mikrokontroleru komunikovat s mnoha senzory na vzdálenost až 100m.

To může být užitečné zejména u systémů HVAC, kde lze vzduchovými kanály vést pouze dva vodiče pro sledování teploty a vlhkosti u každého větracího otvoru.

Podpora vývoje s 1-Wire

Abychom mohli začít vyvíjet s protokolem 1-Wire, nabízí Maxim Integrated vývojovou sadu DS28E18EVKIT#. Součástí sady je potřebný hardware i software (obrázek 2).

Obrázek 2: Vývojová deska DS28E18EVKIT# umožňuje snadné připojení senzorů SPI nebo I²C ke sběrnici 1-Wire. Přiložený software lze použít k programování a monitorování chování sběrnice a připojených senzorů. (Zdroj obrázku: Maxim Integrated)

Vývojová deska umožňuje programovat a monitorovat DS28E18Q+T. Pro vývojové účely je deska dodávána s adaptérem USB, který slouží k propojení desky s počítačem se systémem Windows. K tomu slouží software DS28E18EVKIT# evaluation kit software, který je volně dostupný na webových stránkách Maxim Integrated. Jak je vidět na obrázku 3, software umožňuje programování a monitorování DS28E18Q+T a jeho připojené periferie.

Obrázek 3: Software DS28E18EVKIT# umožňuje konfigurovat integrovaný DS28E18Q+T pomocí USB a sledovat jeho chování. Paměť sekvenceru o velikosti 512 bajtů může být naplněna daty a poté odeslána do senzoru. (Zdroj obrázku: Maxim Integrated)

Software může odesílat příkazy na desku DS28E18Q+T a konfigurovat ji pro připojené periferie SPI nebo I²C. Software umožňuje vybrat rozsah adres periferií a je schopen zaplnit 512-bajtovou paměť sekvenceru příkazy pro připojené periferie, které mají být provedeny. Tento software může také pomoci konfigurovat ovladače UART, a tím značně zjednodušit první seznámení s komunikačním protokolem 1-Wire. Vývojovou desku lze použít ve své vlastní aplikaci a ověřit si výhody protokolu 1-Wire v praxi.

Závěr

Vzhledem k tomu, že systémy IoT i IIoT obsahují stále více senzorů, jejich připojení je složitější a nákladnější, zejména s rostoucí vzdáleností. Dalším problémem, který může zkomplikovat nastavení senzorové sítě, je napájení. Senzory komunikují převážně přes I2C nebo SPI, ale toto rozhraní potřebuje mnoho vodičů k přenosu dat a napájení a nejsou vhodná pro delší vzdálenosti. Protokol 1-Wire od Maxim Integrated značně zjednodušuje a zefektivňuje propojení se senzorovou sítí poskytnutím dat a napájení přes jeden vodič a zem a nabízí spolehlivou komunikaci na vzdálenost až 100m.

 

Článek vyšel v originále na webu DigiKey.com, autorem je Bill Giovino.

 

Hodnocení článku: