EUR | USD

Gemakkelijk en efficiënt knooppunten toevoegen aan IIoT-eindpunten met behulp van poortuitbreidingen

Door Bill Giovino

Bijgedragen door De Noord-Amerikaanse redacteurs van Digi-Key

Voor Industrial Internet of Things (IIoT)-toepassingen zijn de kenmerken en flexibiliteit van IIoT-eindpunten niet alleen in functionaliteit maar ook in de fysieke regelzone met vele meters van de host-microcontroller in het eindpunt uitgebreid. Terwijl een paar I/O-pinnen van de host-microcontroller van het IIoT-eindpunt kunnen worden gebruikt om deze uitgebreide locaties te bereiken, worden de I/O-lijnen steeds gevoeliger voor elektromagnetische interferentie (EMI) met toenemende afstand, wat resulteert in een verminderde betrouwbaarheid. Hoewel een andere microcontroller kan worden gebruikt als een knooppunt van de host-microcontroller van het IIoT-eindpunt, kan dit de complexiteit onnodig verhogen wanneer de gegevens alleen worden gebruikt voor eenvoudige digitale I/O-signalen.

In plaats van de I/O-lijnen uit te breiden voor een bredere controle, kunnen ontwikkelaars poortuitbreidingen gebruiken als kosteneffectieve knooppunten vanaf het IIoT-eindpunt.

Dit artikel beschrijft de rol van poortuitbreidingen alvorens twee poortuitbreidingen van Maxim Integrated te introduceren. Deze uitbreidingen zijn eenvoudig te koppelen aan de host-microcontroller met seriële interfaces die de digitale I/O-functionaliteit van het IIoT-knooppunt aanzienlijk uitbreiden. Ze doen dit met behoud van de conventionele general purpose I/O (GPIO) functionaliteit zoals pulsbreedtemodulatie (PWM) generatie en onderbrekingsdetectie.

Waarom poortuitbreidingen nodig zijn voor een IIoT-netwerk

Bij de planning van een IIoT-netwerk is een van de eerste stappen het bepalen van het aantal eindpunten. Elk apparaat dat nodig is om zijn gedrag te synchroniseren met de rest van de faciliteit zal ten minste één eindpunt nodig hebben. Een goed voorbeeld hiervan zou een fabrieksassemblagelijn zijn. Elk station moet worden gesynchroniseerd met de voortgang van de gehele assemblagelijn om de juiste assemblageprocedure op het juiste moment uit te voeren.

Het is echter mogelijk dat een IIoT-eindpunt in een fabrieksassemblagelijn niet is gelokaliseerd op één fysiek gebied, maar dat het in plaats daarvan bedrading of kabels gebruikt om de GPIO-poorten van het IIoT-eindpunt uit te breiden, vergelijkbaar met een sterconfiguratie met de host-microcontroller als de hub. De beëindiging van elk punt van de ster kan genoeg complexiteit hebben om te fungeren als een knooppunt van het belangrijkste IIoT-eindpunt, maar kan niet geavanceerd genoeg zijn om te worden geconfigureerd als een eigen IIoT-eindpunt met een eigen netwerkverbinding. Terwijl het knooppunt kan worden ontworpen om door zijn eigen microcontroller te worden gecontroleerd, kan dit voor eenvoudige GPIO onnodige complexiteit en kosten toevoegen.

Een voorbeeld uit de praktijk zou een IIoT-eindpunt zijn dat motoren met PWM-signalen aanstuurt. Als de motoren op enkele meters afstand staan, zouden er meerdere PWM-signalen naar de motoren moeten worden gestuurd, wat de EMI voor de omgeving zou verhogen. Afgeschermde kabel zou kunnen worden gebruikt om de PWM-signalen over te brengen, maar dat zou de kosten van het systeem verhogen en zou geen fouten als gevolg van faseverschuivingen over afstand of overspraak elimineren. In plaats daarvan zou een seriële bus zoals I2C of SPI gebruikt kunnen worden om commando's te sturen naar een programmeerbaar systeem in de buurt van de motoren die de PWM-signalen zouden genereren. Deze elektronica zou een knooppunt zijn dat geprogrammeerd is om de vereiste PWM-signalen te genereren.

Een praktische oplossing voor het knooppunt kan zijn om een poortuitbreiding te gebruiken over een seriële interface naar de host-microcontroller. Poortuitbreidingen zijn eenvoudiger te configureren dan een microcontroller en vergroten het bereik van de GPIO van de host-microcontroller. In plaats van acht of meer GPIO-lijnen naar een knooppunt te lopen, kan een poortuitbreiding bij het knooppunt gemakkelijk worden bereikt door de host-microcontroller via een eenvoudige I2C of SPI-interface. Het schrijven naar een register in een poortuitbreiding stelt of wist GPIO's terwijl het lezen de status van GPIO's teruggeeft, hetzelfde als het controleren van GPIO's op de host-microcontroller. Poortuitbreidingen behouden ook een groot deel van de functionaliteit van microcontroller GPIO's, inclusief PWM-generatie en interruptingangen.

Een voorbeeld van een eenvoudig te gebruiken poortuitbreiding is de Maxim Integrated MAX7315AUE+T met acht GPIO's en een I2C-interface (Afbeelding 1).

Diagram van Maxim Integrated MAX7315A poortuitbreidingAfbeelding 1: De Maxim Integrated MAX7315A-poortuitbreiding biedt tot acht GPIO's en kan bij een verandering in de status van een GPIO een onderbreking naar de host-microcontroller genereren. Het is toegankelijk via een tweedraads I2C-interface. (Afbeelding: Maxim Integrated)

De MAX7315A ondersteunt acht GPIO's, die elk afzonderlijk kunnen worden geconfigureerd als input of open-drain uitgang. Een host-microcontroller communiceert met de MAX7315A via een tweedraads I2C-interface die werkt tot 400 kilohertz (kHz). Het adres van het apparaat op de I2C-bus wordt geconfigureerd door de drie adrespinnen AD [0:2], zie Afbeelding 1. Het apparaat kan ook een interruptie naar de host-microcontroller genereren.

Met de MAX7315A kunnen acht GPIO's eenvoudig worden beheerd met slechts drie pinnen: de twee I2C-pinnen en de onderbrekingspin. Het apparaat kan op elke willekeurige afstand van de host-microcontroller worden geplaatst zolang de omstandigheden een betrouwbare I2C-communicatie mogelijk maken. Afhankelijk van de layout van de printplaat en de EMI-omgeving, met de seriële klok (SCL) die op 400 kHz loopt, is meestal drie voet een betrouwbare afstand, en met een 100 kHz SCL kan negen voet of meer worden bereikt.

Het is echter belangrijk om dit te testen in een actieve omgeving om er zeker van te zijn dat de omgevingscondities of EMI geen significant effect hebben op de afstand.

Onderbrekingsdetectie bij het knooppunt

Het apparaat ondersteunt een actieve, lage onderbrekingsuitgang op pin 13, maar als de onderbrekingsfunctie niet nodig is, kan pin 13 als negende GPIO worden geconfigureerd. De onderbreking kan worden geconfigureerd om laag te gaan op een willekeurige invoerpinovergang. Hierdoor kan de host-microcontroller op de hoogte worden gebracht van de activiteit op het knooppunt zonder de MAX7315A te hoeven peilen. Wanneer de onderbrekingsfunctie is ingeschakeld, werkt elke GPIO die als ingang is geconfigureerd en een onderbreking heeft ingeschakeld, als een onderbrekingsingang. Bij elke verandering in de status van een GPIO die als een onderbreking is geconfigureerd, gaat pin 13 laag om de verandering aan de host-microcontroller te signaleren. De host-microcontroller leest vervolgens de status van de MAX7315A af om te bepalen welke GPIO van status is veranderd.

Dit proces voorkomt elk verlies van onderbrekingsfunctionaliteit door het gebruik van een poortuitbreiding voor GPIO, wat niet alleen in IIoT maar ook in microcontrollersystemen die onderbrekingen nodig hebben voor een efficiënte werking van de firmware, van cruciaal belang is.

De onderbrekingsfunctie moet worden uitgeschakeld voordat de configuratie van de MAX7315A wordt gewijzigd om te voorkomen dat er een valse onderbreking wordt gegenereerd.

Hoewel de MAX7315A kan werken met een 2 tot 3,6 volt voeding, zijn de GPIO's 5,5 volt tolerant. Hierdoor kunnen de GPIO's compatibel zijn met standaard logische niveaus, waaronder 2,0 volt, 3,6 volt en 5,0 volt digitale systemen. Elke GPIO geconfigureerd als een open-drain uitgang kan tot 50 milliampère (mA) op een logisch hoog niveau leveren. Uitgangen kunnen aan elkaar worden gekoppeld om de uitgangsstroom te verhogen. Dit maakt de MAX7315A toepasbaar voor hoge stroom LED-indicatoren en achtergrondverlichting van het toetsenbord.

PWM-generatie bij het knooppunt

De MAX7315A maakt ook programmeerbare PWM-uitgangen mogelijk zonder tussenkomst van de host-microcontroller. Een interne 32 kHz-oscillator wordt gebruikt als tijdbasis voor PWM-golfvormen. Een 4-bits master-intensiteitinstelling configureert de beschikbare 32 kHz PWM-intensiteit voor alle uitgangen van 0 tot 15, vergelijkbaar met een prescaler. Elke PWM-uitgangsgolfvorm voor elke GPIO is verdeeld in 15 tijdslots. De instelling van de master-intensiteit bepaalt hoeveel slots er beschikbaar zijn voor het genereren van PWM. Elke individuele GPIO heeft zijn eigen individuele intensiteitsregister dat wordt gebruikt om de duty cycle voor de golfvorm in de actieve slots in te stellen. Dit kan het beste worden uitgelegd aan de hand van een voorbeeld met behulp van de uitgangsgolfvorm van een individuele GPIO-pin (Afbeelding 2).

Grafiek van Maxim MAX7315A-uitgangsgolfvorm van een individuele GPIO-pinAfbeelding 2: De MAX7315A heeft een programmeerbare PWM-generator die werkt op een intern gegenereerde 32 kHz klok. Deze PWM heeft master intensiteit = 2 en een individuele GPIO duty cycle intensiteit = 2. (Afbeelding: Maxim Integrated)

De master-intensiteit is ingesteld op 2, dus alleen slots 1 en 2 van de 15 slots zijn beschikbaar voor PWM-generatie, terwijl slots 3 tot en met 15 op logisch niveau nul staan. De intensiteit van de individuele duty cycle voor deze GPIO is ingesteld op 2, zodat de golfvormen in slots 1 en 2 een duty cycle van 2/16 = 12,5% hebben.

De PWM-masterintensiteit kan worden ingesteld van 0 tot 15, waarbij 15 betekent dat alle 15 slots beschikbaar zijn. Een master-intensiteit van nul betekent dat de PWM-generatie voor alle GPIO's is uitgeschakeld en dat de 32 kHz-klok dus is uitgeschakeld om stroom te besparen.

Elke individuele GPIO kan een PWM duty cycle intensiteit van 1 tot 16 configureren, waarbij 16 een 100 procent duty cycle is, waarbij het slot op een logische hoogte wordt ingesteld.

Voor verdere flexibiliteit heeft elke GPIO een polariteitsbit die de PWM-golfvorm kan omkeren. Afbeelding 2 toont de golfvorm met de polariteitsbit voor die GPIO ingesteld op 1. De PWM-golfvorm in Afbeelding 3 toont dezelfde GPIO met dezelfde master-intensiteit en duty cycle-intensiteit als in Afbeelding 2, maar de polariteitsbit wordt gewist naar 0.

Grafiek van Maxim Integrated MAX7215A heeft een polariteitsbit die de golfvorm omkeert.Afbeelding 3: Elke PWM GPIO op de Maxim Integrated MAX7215A heeft een polariteitsbit die de golfvorm omkeert. Deze PWM heeft een master-intensiteit = 2 en een individuele duty cycle-intensiteit = 2 met de polariteitsbit = 0 die de golfvorm omkeert. (Afbeelding: Maxim Integrated)

Met deze flexibiliteit in PWM-golfvormgeneratie kan de MAX7315A in een knooppunt van een IIoT-eindpunt worden gebruikt om het dimmen van LED-indicatoren te regelen, voedingstransistors voor gelijkstroommotoren aan te sturen en elektromotoren en actuators aan te sturen. In plaats van acht digitale lijnen met PWM-golfvormen over een rumoerige industriële omgeving te laten lopen, hoeft de host-microcontroller alleen nog maar de MAX7315A te configureren en onafhankelijk te laten draaien.

Uitbreiding van de functionaliteit bij knooppunten

Voor complexere knooppunten biedt Maxim Integrated de MAX7301AAX+T-poortuitbreiding met maximaal 28 GPIO's. De MAX7301AAX is met de host-microcontroller in het IIoT-eindpunt verbonden door middel van een standaard vierpins SPI-interface (Afbeelding 4). Het ondersteunt ook een actieve hoge onderbrekingsfunctie als een alternatieve functie uit P31. De MAX7315AAX kan worden geconfigureerd om een onderbreking terug naar de host-microcontroller te genereren bij een verandering in de status van een of meer GPIO's. Hierdoor kunnen 27 GPIO's in een knooppunt worden bestuurd in een onderbrekingsgestuurd systeem met slechts vijf controlelijnen: de vier SPI-controlelijnen en één onderbrekingslijn.

Diagram van de MAX7301-poortenuitbreiding SPI-interface van Maxim IntegratedAfbeelding 4: De Maxim Integrated MAX7301-poortuitbreiding heeft een SPI-interface en ondersteunt tot 28 GPIO-pinnen die beschikbaar zijn voor invoer of uitvoer. Pin 31 ondersteunt een alternatieve functie als actieve hoge onderbreking, waardoor 27 GPIO-lijnen kunnen worden aangestuurd met behulp van vijf besturingssignalen. (Afbeelding: Maxim Integrated)

De MAX7301AAX werkt over een breed aanbod van 2,25 tot 5,5 volt, waardoor hij compatibel is met de meeste digitale logica systemen. De GPIO kan worden geconfigureerd als Schmitt-trigger-ingangen met of zonder interne pullupweerstand. GPIO kan ook worden geconfigureerd als push-pull-uitgangen die tot 10 mA kunnen zinken. Dit maakt de MAX7301AAX geschikt voor de koppeling met circuits op logisch niveau die worden gebruikt voor de besturing van andere apparatuur, zoals industriële besturingen en voor systeembewaking en alarmcircuits.

Conclusie

Omdat ontwerpers het fysieke bereik van IIoT-eindpunten vergroten, kan het controleren van knooppunten een uitdaging zijn omdat het uitbreiden van meerdere controlelijnen over afstanden van vele meters problemen oplevert met EMI, lay-out en de complexiteit van het circuit. Door gebruik te maken van poortuitbreidingen om knooppunten in onderbrekingsgestuurde systemen te controleren, kunnen ontwikkelaars de lay-out van de kaart vereenvoudigen en de betrouwbaarheid verbeteren, terwijl ze tegelijkertijd aanzienlijke functionaliteit aan het IIoT-eindpunt toevoegen.

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 Digi-Key Electronics or official policies of Digi-Key Electronics.

Achtergrondinformatie over deze auteur

Bill Giovino

Bill Giovino is een ingenieur in elektronica met een BSEE van de Syracuse University. Hij is een van de weinigen die met succes de overstap maakten van ontwerpingenieur naar ingenieur veldtoepassingen en vervolgens naar technologiemarketing.

Meer dan 25 jaar lang heeft Bill met veel toewijding nieuwe technologieën gepromoot ten overstaan van zowel technisch als niet-technisch publiek voor vele bedrijven, waaronder STMicroelectronics, Intel en Maxim Integrated. Toen hij bij STMicroelectronics actief was, hielp Bill bij de doorbraak van de eerste successen van het bedrijf in de sector van microcontrollers. Bij Infineon stond Bill in voor de eerste toepassingen van het microcontrollerontwerp van het bedrijf in de Amerikaanse autosector. Als marketing consultant voor zijn bedrijf CPU Technologies, hielp Bill vele bedrijven om laag presterende producten op te krikken en er een succesverhaal van te maken.

Bill was een van de eersten die het Internet of Things toepaste. Hij plaatste de eerste volledige TCP/IP-stack op een microcontroller. Bill is trouw aan het motto “Verkoop via opvoeding” en wijst op het toenemende belang van duidelijke, goed geschreven mededelingen om producten online te promoten. Hij is moderator van de populaire LinkedIn Semiconductor Sales & Marketing Group en spreekt vlot B2E.

Over deze uitgever

De Noord-Amerikaanse redacteurs van Digi-Key