Hur man på ett effektivt sätt ansluter till givare i IoT-slutpunkter med hjälp av kommunikation via 1-Wire

Av Bill Giovino

Bidraget med av DigiKeys nordamerikanska redaktörer

Även om det är vanligt att slutpunkter för IoT och industriellt IoT har lokala styrområden, behöver vissa ansluta till enkla givare som är mer än en meter bort från mikrokontrollvärdens plats. Traditionellt används gränssnitten SPI eller I²C för att kommunicera med dessa givare på ett enkelt sätt. Men när algoritmerna för styrning blir alltmer komplicerade och flera givare behöver användas, måste mikrokontrollern använda fler SPI- och I²C-linjer för att nå givarna. Detta ökar kabelförläggningens komplexitet, vilket ökar kostnaderna för konfiguration och underhåll, särskilt när avstånden ökar.

Artikeln visar utvecklare hur man använder protokollet 1-Wire från Maxim Integrated för att ansluta till IoT-givare med bara en tråd plus jord på ett kostnadseffektivt sätt. Den kommer att diskutera fördelarna med protokollet 1-Wire, bland annat att givarens räckvidd utökas avsevärt och att ström och data tillhandahålls via samma kablar. Därefter presenteras en bryggenhet som omvandlar 1-Wire signaler till antingen SPI eller I²C och en utvecklingssats med programvara som hjälper konstruktörer att komma igång.

Utökad användning av givare för IoT- och IIoT

Den utökade användningen av IoT- och IIoT-nätverk handlar om att göra system och tillverkningsprocesser effektivare samtidigt som funktionaliteten utökas. Detta innebär att data samlas in med hjälp av givare. Medan ett hem kan ha en termostat i ett rum som innehåller en temperaturgivare, kan en automatiserad byggnad eller ett IIoT-nätverk ha många temperatur- och luftfuktighetsgivare i ett rum och i hela byggnaden eller anläggningen. Exempelvis kan ytterligare givare placeras i kanaler för luftbehandling (HVAC) tillsammans med tryckgivare. Säkerhetssystemen kan också använda olika typer av givare som även dessa kan vara placerade på flera olika platser.

I tillverknings- och transportbandssystem ökar också användningen av givare för processövervakning och dataloggning för analys av hur man, exempelvis kan spara energi genom att göra systemen effektivare och samtidigt förbättra säkerheten.

De vanligaste givarna i dessa tillämpningar är miljögivare, som inkluderar givare för temperatur, fuktighet och tryck, visuella givare inklusive visuellt ljus och kapacitiva närhetsgivare samt positionsgivare som inkluderar elektromekaniska mikrosystem såsom MEMS-accelerometrar, MEMS-gyroskop och vibrationsgivare. Miniatyrisering och framsteg inom MEMS-tekniken har lett till givare med kapslingar som är mindre än en tumnagel och som endast drar några hundra mA. De flesta av dessa givare är lätt åtkomliga via kommunikationsgränssnitten SPI eller I²C, som båda finns på nästan alla mikrokontroller. När det gäller gränssnittet till dessa enkla givare kan det vara opraktiskt att konstruera en hel slutpunkt för IoT- eller IIoT eller en underordnad nod bara för att sampla temperaturen, så det är ofta enklare och snabbare att bara köra kommunikationslinjerna för SPI eller I²C direkt till dem.

I vissa fall används fortfarande analoga givare, som i exempelvis termokopplare för hög temperatur och i vissa tryckgivare. I dessa fall har mikrokontrollern ett gränssnitt mot en analog-till-digitalomvandlare med SPI eller I²C på givarens plats som samplar den analoga givaren lokalt. Detta undviker spänningsfall i analoga givarledningar och förbättrar därmed noggrannheten.

Gränssnitt till fjärrstyrda givare med SPI och I²C

En mikrokontroller kommunicerar med givarna genom att utöka SPI- och I²C-datalinjernas räckvidd. I²C är dock begränsad till en räckvidd på högst en meter och SPI har liknande begränsningar. Dessutom kräver SPI med full-duplex, fyra stift, inklusive ett individuellt val av kringutrustning för respektive stift. För att nå fyra kringutrustningar med SPI på en buss krävs alltså sju stift, plus ström och jord, vilket ger totalt nio stift. I²C med halv duplex kräver två stift, plus ström och jord, till kringutrustningen, vilket ger totalt fyra linjer. Samtidigt ökar de elektromagnetiska störningarna (EMI) med så många höghastighetssignaler, vilket kan orsaka överhörning, som i sin tur leder till minskad signalintegritet och lägre tillförlitlighet i systemet.

Vad som behövs är en lösning som minimerar antalet ström- och dataledningar och förenklar driften samtidigt som den är kompatibel med befintliga I²C- och SPI-givare.

För att lösa problemet med anslutning av fjärrgivare över längre avstånd och samtidigt minska antalet kablar har Maxim Integrated utvecklat protokollet 1-Wire som ansluter till de flesta SPI- eller I²C-givare med hjälp av en tråd plus jord. Protokollet minskar de sex trådar som krävs för SPI och de fyra som används för I²C till endast två trådar som transporterar både data och ström upp till 100 meter.

Tillämpning av 1-Wire

Vid användning av protokollet 1-Wire har fjärrgivaren en brygga för kommunikation via 1-Wire som omvandlar protokollet 1-Wire till kompatibla SPI- eller I²C-signaler som ansluts till givaren. Både 1-Wire bryggan och givaren drivs parasitiskt av enbart 1-Wire signalen plus en jordledning. Detta gör att 1-Wire signaler kan ledas i små områden, vilket sparar kostnader genom att mindre kablar kan användas.

Medan både SPI och I²C använder en dedicerad klocksignal, bäddar protokollet 1-Wire in klockan i datasignalen. SPI adresserar en viss kringutrustning med hjälp av en separat valsignal för respektive kringutrustning, medan I²C använder en 7-bitars bussadress som överförs längs datalinjen. Protokollet 1-Wire använder däremot en 56-bitars adress som är fast kopplad till respektive enskild kommunikationsbrygga. Detta bredare adresseringsområde ökar inte bara antalet unika kringutrustningar på en buss, utan även säkerheten genom att det blir svårare för en angripare att gissa adressen till en kringutrustning på 1-Wire bussen.

Ordstorleken på en buss för kringutrustning med 1-Wire är 8 bitar. En mikrokontrollervärd för en 1-Wire buss kan skicka enstaka bitar via 1-Wire protokollet, men det stöds även av en enkel UART-drivrutin. Detta gör att även en 8-bitars mikrokontroller kan vara värd för en 1-Wire buss. En 1-bitars buss kan innehålla kringutrustning med antingen SPI eller I²C, men inte båda. Denna konsekvens förhindrar konflikter och kollisioner på bussen och förenklar programmeringen av protokollet.

Lösningar med 1-Wire i verkligheten

För konstruktörer som vill ansluta till en kringutrustning med SPI eller I²C via en 1-Wire buss erbjuder Maxim Integrated, 1-Wire till I²C-/SPI-bryggan DS28E18Q+T med kommandosequencer (figur 1).

Diagram över 1 Wire till I²C-/SPI-bryggan DS28E18Q+T med kommandosequencer från Maxim Integrated (klicka för att förstora)Figur 1: 1-Wire till I²C-/SPI-bryggan DS28E18Q+T med kommandosequencer har ett gränssnitt till en 1-Wire buss med IO- och GND-stift. (Bildkälla: Maxim Integrated)

Enligt figur 1 tas ström parasitiskt från bussen när IO är hög och görs tillgänglig på SENS_VDD-stiftet för att strömförsörja kringutrustningen. Bryggan buffrar och översätter 1-Wire kommandon till lämpliga I²C- eller SPI-kommandon.

IO-stiftet och GND ansluts till 1-Wire bussen och skickas till frontänden med dess tillståndsmaskin. Varje enhet identifieras av ett 56-bitars ROM-ID, föregånget av en 8-bitars kod för 1-Wire familjen som anger versionen av DS28E18Q+T. Detta gör det möjligt för mikrokontrollerns firmware att identifiera en specifik DS28E18Q+T, vilket gör att den är tillräckligt flexibel för att hantera eventuella förändringar i enhetsfamiljen. Det finns ett 48-bitars unikt serienummer för enheten med en 8-bitars CRC-kod (cyclic redundancy check).

Frontänden skickar den översatta informationen till kommandosequencern med hjälp av en kommandobuffert på 144-byte som innehåller 128 byte data från IO-bussen och 16 byte för internt bruk. Kommandosequencern bearbetar kommandona och kan lagra upp till 512 bytes med I²C- eller SPI-kommandon i sin buffert som senare ska skickas till kringutrustningen, istället för att 1-Wire bussen ska bearbeta kommandona ett i taget.

Bufferten på 512 byte gör det även möjligt för DS28E18Q+T att samordna sitt eget interna strömförsörjningsbeteende så att tidpunkten för kommunikation med kringutrustningen gör det möjligt att bibehålla parasitströmmen. Kommandosequencern upprätthåller denna timing när den skickar instruktioner till I²C/SPI-mastern och GPIO-kontrollern som behandlar data så att de överensstämmer med standarderna I²C och SPI.

En extern kondensator på 470 nanofarad (nF) är ansluten tillCEXT-stiftet och fungerar som en strömreserv för DS28E18Q+T vid driften av 1-Wire bussen. Parasitströmmen är tillgänglig för den anslutna kringutrustningen vid SENS_VDD-stiftet. För SPI-drift ger de fyra stiften SS#, MISO, MOSI och SCLK kommunikation med full duplex till den anslutna kringutrustningen. I²C-drift använder endast två stift i form av de alternativa funktionsstiften, SDA och SCL. Stiften SS# och MISO för SPI-drift är oanvända för I²C-drift och kan därför användas som allmänna I/O (GPIO) med de alternativa funktionerna GPIOA och GPIOB. Detta ger större flexibilitet som kan användas för att tända diagnostiska lysdioder på sensorns plats eller för att hantera konfigurationsstift i en givare eller ADC för att förändra enhetens beteende.

Med hjälp av DS28E18Q+T från Maxim Integrated kan en enda UART på en mikrokontroller kommunicera med endast två kablar med många givare på samma buss bestående av en 1-Wire plus jord. Respektive givare är ansluten till en DS28E18Q+T som kan vara upp till 100 m bort. Detta kan vara särskilt användbart i luftbehandlingssystem där endast två kablar kan ledas genom en luftkanal för att övervaka temperatur och luftfuktighet vid respektive ventil längs hela dess längd. Detta förbättrar systemets effektivitet genom att övervaka varma eller kalla punkter som kan orsakas av hinder.

Utveckling med 1-Wire

För att komma igång med utvecklingen med protokollet 1-Wire erbjuder Maxim Integrated utvärderingssystemet DS28E18EVKIT#. Den består av ett utvecklingskort (figur 2) och programvara.

Bild på utvärderingskortet DS28E18EVKIT från MaximFigur 2: Utvärderingskortet DS28E18EVKIT# från Maxim gör det möjligt för en utvecklare att enkelt ansluta en SPI- eller I²C-kringutrustning till 1-Wire bussen. Det medföljande programmet kan användas för att programmera eller övervaka bussens och kringutrustningens beteende samt för att generera drivrutiner för mikrokontroller-enheter. (Bildkälla: Maxim Integrated)

Utvärderingskortet gör det möjligt för en utvecklare att programmera och övervaka DS28E18Q+T. För utvecklingsändamål levereras kortet med en USB-adapter som ansluter kortet till en USB-port på en Windows-dator. Utvecklaren måste ladda ner och köra programmet för utvärderingssatsen DS28E18EVKIT# för att underlätta utvecklingen. Som framgår av figur 3 gör utvärderingsprogrammet det möjligt att programmera och övervaka DS28E18Q+T och dess anslutna kringutrustning.

Bild på utvärderingsprogrammet DS28E18EVKIT# från Maxim Integrated (klicka för att förstora)Figur 3: Utvärderingsprogrammet DS28E18EVKIT# gör det möjligt för en utvecklare att konfigurera den inbyggda DS28E18Q+T med hjälp av USB-adaptern och övervaka dess beteende. Minnet för kommandosequencern på 512 byte kan fyllas med data och sedan skickas till kringutrustningen för att utföra givaråtgärden. (Bildkälla: Maxim Integrated)

Programmet kan skicka kommandon till utvärderingskortet DS28E18Q+T och konfigurera det för SPI- eller I²C-kringutrustning. Den kan välja kringutrustningens adressområde och fylla minnet för kommandosequencerns minne på 512 byte med kommandon som kringutrustningen ska utföra. Programmet kan även underlätta konfigureringen av UART-drivrutinerna för den avsedda mikrokontrollern, vilket gör att du slipper lära dig alla detaljer i protokollet 1-Wire för kommunikation. En utvecklare kan även använda utvärderingskortet i sin egen tillämpning, vilket sparar tid och arbete med att bygga och konfigurera en givarnod.

Slutsats

I takt med att IoT- och IIoT-systemen lägger till fler givare blir kabelförläggningen till givarna alltmer komplicerad och kostsam, i synnerhet då avstånden ökar. Att strömförsörja givarna är också ett annat problem som kan försvåra upprättandet av ett givarnätverk. Som visat, kan protokollet 1-Wire och tillhörande hårdvara från Maxim Integrated göra gränssnittet till givarnätverket enklare och effektivare genom att tillhandahålla data och ström via bara en tråd plus jord.

DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

Om skribenten

Image of Bill Giovino

Bill Giovino

Bill Giovino arbetar som elektronikingenjör och har kandidatexamen i elektroteknik från Syracuse University. Han är en av få personer som med framgång har bytt karriär från konstruktör via fältapplikationsingenjör till att arbeta med marknadsföring av teknik.

I mer än 25 år har Bill arbetat med att marknadsföra ny teknik för en publik både med och utan tekniska kunskaper för många företag (bland dem kan nämnas STMicroelectronics, Intel och Maxim Integrated). På STMicroelectronics var Bill en av de drivande personerna i att leda företagets framgångar på den nya branschen för mikrostyrenheter. På Infineon drev Bill konstruktionen av prisvinnande mikrostyrenheter för bilindustrin i USA. I sin roll som marknadsföringskonsult för CPU Technologies har Bill hjälpt många företag att omvandla mindre framgångsrika produkter till framgångshistorier.

Bill var tidig med att använda sakernas internet, bland annat genom att placera den första kompletta TCP/IP-stacken på en mikrostyrenhet. Bill tror mycket på att försäljning ska bedrivas genom utbildning och att det är allt viktigare med tydlig, välskriven kommunikation för att marknadsföra produkter online. Han är moderator för den populära gruppen Linkedin Semiconductor Sales & Marketing och kan allt om B2E.

Om utgivaren

DigiKeys nordamerikanska redaktörer