Hoe efficiënt verbinding maken met sensors in IoT-eindpunten met behulp van 1-draads communicatie
Bijgedragen door De Noord-Amerikaanse redacteurs van DigiKey
2021-06-17
Hoewel het gebruikelijk is dat Internet of Things (IoT) en Industrial IoT (IIoT) eindpunten gelokaliseerde controlegebieden hebben, moeten sommige verbinding maken met eenvoudige sensoren die zich op meer dan een meter afstand bevinden van de locatie van de host-microcontroller. Traditioneel worden SPI of I²C seriële interfaces gebruikt om gemakkelijk met deze sensors te communiceren. Naarmate de besturingsalgoritmen echter gecompliceerder worden en er meer sensoren moeten worden ingezet, moet de microcontroller meer SPI- en I²C-lijnen gebruiken om deze sensors te bereiken. Dit verhoogt de complexiteit van de bedrading, hetgeen de configuratie- en onderhoudskosten verhoogt, vooral naarmate de afstanden groter worden.
Dit artikel laat ontwikkelaars zien hoe ze het 1-draadsprotocol van Maxim Integrated kunnen gebruiken om op kosteneffectieve wijze verbinding te maken met IoT-sensors met slechts één draad plus aarding. De voordelen van het 1-draadsprotocol zullen worden besproken, waaronder een aanzienlijke vergroting van het bereik van de sensor en de levering van stroom en gegevens via dezelfde draden. Vervolgens wordt een brugapparaat geïntroduceerd dat 1-draadsignalen omzet naar SPI of I²C en een ontwikkelingskit met software om ontwerpers op weg te helpen.
Toenemend gebruik van IoT- en IIoT-sensors
Bij de uitbreiding van IoT- en IIoT-netwerken gaat het erom systemen en productieprocessen efficiënter te maken en tegelijk de functionaliteit uit te breiden. Dit houdt in dat gegevens worden verzameld met behulp van sensors. Terwijl een huis één thermostaat in een kamer kan hebben die een temperatuursensor bevat, kan een geautomatiseerd gebouw of IIoT-netwerk vele temperatuur- en vochtigheidssensors in een kamer en in het hele gebouw of de hele faciliteit plaatsen. Naast druksensors kunnen bijvoorbeeld extra sensors worden geplaatst in verwarmings-, ventilatie- en airconditioningsbuizen (HVAC-kanalen). Beveiligingssystemen kunnen ook gebruik maken van verschillende soorten sensors en deze kunnen ook op verschillende plaatsen worden geplaatst.
Bij productie- en transportbandsystemen wordt ook steeds meer gebruik gemaakt van sensoren voor procesbewaking en datalogging om te analyseren hoe bijvoorbeeld energie kan worden bespaard door systemen efficiënter te maken, terwijl ook de veiligheid wordt verbeterd.
De meest gebruikelijke sensors voor deze toepassingen zijn omgevingssensors, met inbegrip van temperatuur, vochtigheid en druk; visuele sensors, met inbegrip van zichtbaar licht en capacitieve nabijheidssensoren; en positiesensors, met inbegrip van micro-elektromechanische systemen (MEMS) versnellingsmeters, MEMS gyroscopen en vibratiesensors. Miniaturisatie en vooruitgang in MEMS-technologieën hebben geleid tot sensoren in pakketjes kleiner dan een duimnagel die slechts een paar honderd milliampère (mA) trekken. De meeste van deze sensors zijn gemakkelijk toegankelijk via een SPI of I²C communicatie-interface, die beide te vinden zijn op bijna elke microcontroller. Bij de interfacing met deze eenvoudige sensors kan het onpraktisch zijn om een volledig IoT of IIoT-eindpunt of child-knooppunt te bouwen om alleen de temperatuur te meten, dus is het vaak eenvoudiger en sneller om gewoon de SPI of I²C communicatielijnen rechtstreeks naar hen te laten lopen.
In sommige gevallen worden nog analoge sensors gebruikt, zoals thermokoppels voor hoge temperaturen en sommige druksensors. In deze gevallen heeft de microcontroller een interface met een SPI of I²C analoog-digitaalconvertor (ADC) op de sensorlocatie, die de analoge sensor lokaal bemonstert. Dit voorkomt spanningsverliezen over analoge sensorleidingen en verbetert zo de nauwkeurigheid.
Interfacing met externe SPI- en I²C-sensors
Een microcontroller communiceert met deze sensoren door het bereik van SPI en I²C datalijnen uit te breiden. I²C is echter beperkt tot een bereik van één meter of minder, en SPI heeft soortgelijke beperkingen. Bovendien zijn voor full-duplex SPI vier pennen nodig, inclusief een afzonderlijke perifere select voor elke pen. Het resultaat is dat voor het bereiken van vier SPI-randapparaten op een bus zeven pennen nodig zijn, plus voeding en aarde, voor een totaal van negen pennen. Half-duplex I²C vereist twee pinnen, plus voeding en aarde, voor het randapparaat, voor een totaal van vier lijnen. Tegelijkertijd zorgen de vele signalen met hoge snelheid voor een toename van de elektromagnetische interferentie (EMI), die overspraak kan veroorzaken, met als gevolg een verminderde signaalintegriteit en een lagere betrouwbaarheid van het systeem.
Wat nodig is, is een oplossing die de stroom- en datakabels tot een minimum beperkt en de werking vereenvoudigt met behoud van compatibiliteit met bestaande I²C- en SPI-sensors.
Om het probleem op te lossen van het verbinden met sensoren op afstand over langere afstanden en tegelijk het aantal draden te verminderen, ontwikkelde Maxim Integrated een 1-draadsprotocol dat verbinding maakt met de meeste SPI- of I²C-sensors met behulp van één draad, plus een aarding. Het protocol vermindert het aantal van zes draden van SPI en de vier die I²C gebruikt, tot slechts twee draden die zowel gegevens als voeding overbrengen tot 100 meter (m).
Aanbrengen van 1-draad
Bij gebruik van 1-draads communicatie heeft de draadloze sensor een 1-draads communicatiebrug die het 1-draadsprotocol omzet in compatibele SPI- of I²C-signalen die als interface dienen voor de sensor. Zowel de 1-draadsbrug als de sensor worden parasitair gevoed door alleen het 1-draadsignaal plus een aardingslijn. Hierdoor kunnen 1-draadssignalen in kleine ruimten worden gerouteerd, waardoor kosten worden bespaard door minder draad te gebruiken.
Terwijl zowel SPI als I²C een eigen kloksignaal gebruiken, wordt bij 1-draads de klok in het datasignaal ingebed. SPI adresseert een bepaald randapparaat met behulp van een afzonderlijk select-signaal voor elk randapparaat, terwijl I²C een 7-bits busadres gebruikt dat via de datalijn wordt verzonden; ter vergelijking: 1-Wire gebruikt een 56-bits adres dat hard-wired in elke afzonderlijke communicatiebrug wordt opgenomen. Dit bredere adresseringsbereik verhoogt niet alleen het aantal unieke randapparaten op een bus, maar verhoogt ook de veiligheid doordat het voor een aanvaller moeilijker wordt om het adres van een randapparaat op de 1-draads bus te raden.
De woordgrootte op een 1-draads periferiebus is 8 bits. Een microcontroller 1-Wire bus host kan het 1-Wire protocol bit-bang maken, maar het wordt ook ondersteund door een eenvoudige UART-driver. Hierdoor kan zelfs een 8-bit microcontroller een 1-bit bus host zijn. Een 1-bit bus kan SPI of I²C-randapparatuur bevatten, maar niet beide. Deze consistentie voorkomt conflicten en botsingen op de bus en vereenvoudigt het programmeren met het protocol.
Real-world 1-draads oplossingen
Voor ontwerpers die een interface met een SPI- of I²C-periferie via een 1-draads bus wensen, biedt Maxim Integrated de DS28E18Q+T 1-draads-naar-I²C/SPI-brug met opdrachtsequencer (Afbeelding 1).
Afbeelding 1: De DS28E18Q+T 1-draads-I²C/SPI-brug met commando-sequencer heeft een interface met een 1-draads IO-bus en GND-pennen. (Bron afbeelding: Maxim Integrated)
Verwijzend naar Afbeelding 1, wordt parasitair vermogen onttrokken aan de bus wanneer IO hoog is en beschikbaar gemaakt op de SENS_VDD-pen om het randapparaat te voeden. De bridge buffert en vertaalt 1-draads commando's in de juiste I²C of SPI commando's.
De IO-pen en GND verbinden met de 1-draadsbus en worden naar het front-end gestuurd met zijn toestandsmachine. Elk apparaat wordt geïdentificeerd door een 56-bits ROM-ID, voorafgegaan door een 8-bits, 1-draads familiecode die de revisie van de DS28E18Q+T aanduidt. Dit maakt een unieke identificatie van een specifieke DS28E18Q+T door de firmware van de microcontroller mogelijk, zodat deze flexibel genoeg is om in te spelen op eventuele wijzigingen in de toestelfamilie. Er is een 48-bits uniek serienummer voor het toestel met een 8-bits cyclic redundancy check (CRC) code.
Het front-end zendt de vertaalde gegevens naar de commando-sequencer met behulp van een 144 byte commandobuffer die 128 bytes gegevens van de IO-bus bevat en 16 bytes voor intern gebruik. De commando-sequencer verwerkt de commando's en kan tot 512 bytes aan I²C- of SPI-commando's in zijn buffer opslaan om later naar het randapparaat te worden gezonden, in plaats van de 1-draadsbus de commando's één voor één te laten verwerken.
Deze buffer van 512 bytes laat de DS28E18Q+T ook toe zijn eigen intern stroomgedrag te coördineren, zodat de timing voor de communicatie met het randapparaat het mogelijk maakt parasitair vermogen te behouden. De commando-sequencer handhaaft deze timing wanneer hij instructies zendt naar de I²C/SPI Master en GPIO-controller, die de gegevens verwerken zodat deze voldoen aan de I²C- en SPI-normen.
Een externe condensator van 470 nanofarad (nF) is aangesloten op deCEXT-pen die fungeert als een energiereserve voor de DS28E18Q+T tijdens 1-draadsbusbedrijf. Parasitisch vermogen is beschikbaar voor het aangesloten randapparaat op de SENS_VDD-pen. Voor SPI-werking zorgen de vier pennen SS#, MISO, MOSI en SCLK voor full-duplex communicatie met het aangesloten randapparaat. I²C-werking gebruikt slechts twee pinnen met alternatieve functies, SDA en SCL. Pinnen SS# en MISO voor SPI-bedrijf zijn ongebruikt voor I²C-bedrijf en kunnen dus worden gebruikt als general-purpose I/O (GPIO) met alternatieve functie GPIOA en GPIOB. Dit biedt een grotere flexibiliteit die kan worden gebruikt om diagnostische LED's op te laten lichten op de sensorlocatie of om configuratiepinnen op een sensor of ADC te beheren om het gedrag van het apparaat te veranderen.
Met behulp van de Maxim Integrated DS28E18Q+T kan een enkele UART op een microcontroller met slechts twee draden communiceren met een groot aantal sensoren op dezelfde 1-draads plus aardingsbus; elke sensor is verbonden met een DS28E18Q+T die zich op een afstand van maximaal 100 m kan bevinden. Dit kan bijzonder nuttig zijn voor HVAC-systemen waar slechts twee draden door een luchtkanaal kunnen worden geleid om de temperatuur en de vochtigheid over de gehele lengte bij elke ventilatieopening te controleren. Dit verbetert de efficiëntie van het systeem door te controleren op warme of koude plekken die door obstructies kunnen worden veroorzaakt.
1-draads ontwikkeling
Om aan de slag te gaan met de ontwikkeling van het 1-draadsprotocol, biedt Maxim Integrated het DS28E18EVKIT# evaluatiesysteem aan. Deze bestaat uit een hardware-ontwikkelbord (Afbeelding 2) en software.
Figuur 2: Met het Maxim DS28E18EVKIT#-evaluatiebord kan een ontwikkelaar gemakkelijk een SPI- of I²C-periferie op de 1-draads bus aansluiten. De meegeleverde software kan worden gebruikt voor het programmeren en bewaken van het gedrag van de bus en de randapparatuur, en voor het genereren van de stuurprogramma's voor de microcontroller. (Bron afbeelding: Maxim Integrated)
Het evaluatiebord stelt een ontwikkelaar in staat de DS28E18Q+T te programmeren en te controleren. Voor ontwikkelingsdoeleinden wordt het bord geleverd met een USB-adapter waarmee het bord kan worden aangesloten op een USB-poort van een Windows-computer. De ontwikkelaar moet de software van de DS28E18EVKIT#-evaluatiekit downloaden en uitvoeren om te helpen bij de ontwikkeling. Zoals te zien is in Afbeelding 3, kan met de evaluatiesoftware de DS28E18Q+T en de aangesloten randapparatuur worden geprogrammeerd en bewaakt.
Afbeelding 3: De DS28E18EVKIT#-evaluatiesoftware laat een ontwikkelaar toe om de onboard DS28E18Q+T te configureren met behulp van de USB-adapter en het gedrag ervan te controleren. Het geheugen van 512 bytes van de commando-sequencer kan met gegevens worden gevuld en vervolgens naar het randapparaat worden gezonden om de sensorbewerking uit te voeren. (Bron afbeelding: Maxim Integrated)
De software kan commando's naar het DS28E18Q+T-evaluatiebord sturen en het configureren voor de SPI of I²C-doelrandapparatuur. Hij kan het adresbereik van het randapparaat selecteren en het geheugen van 512 bytes van de commando-sequencer vullen met uit te voeren randapparaatcommando's. De software kan ook helpen bij het configureren van de UART-drivers voor de doelmicrocontroller, waardoor de inspanning wordt bespaard om alle details van het 1-draadscommunicatieprotocol te leren. Een ontwikkelaar kan het evaluatiebord ook in zijn eigen toepassing gebruiken, waardoor hij tijd en moeite bespaart bij het bouwen en configureren van een sensorknooppunt.
Conclusie
Naarmate IoT- en IIoT-systemen meer sensors toevoegen, wordt de bedrading naar de sensors complexer en kostbaarder, vooral naarmate de afstanden toenemen. Het zenden van stroom naar de sensors is ook een andere zorg die het opzetten van een sensornetwerk kan bemoeilijken. Zoals blijkt, kunnen het 1-draadsprotocol en de bijbehorende hardware van Maxim Integrated de interfacing met het sensornetwerk eenvoudiger en efficiënter maken door gegevens en voeding te leveren via slechts één draad, plus aarding.
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.



