Tilføj nemt og effektivt omkostningseffektive sub-noder til IIoT-endepunkter ved hjælp af port-ekspandere
Bidraget af DigiKeys nordamerikanske redaktører
2020-06-10
For IIoT-applikationer er funktionerne og fleksibiliteten i IIoT-endepunkter udvidet ikke kun i funktionalitet, men udvider også det fysiske kontrolområde med adskillige meter fra host-mikrocontrolleren i endepunktet. Mens nogle få I/O-ben fra IIoT-slutpunktets host-mikrocontroller kan bruges til at nå disse udvidede placeringer, bliver I/O-linjerne mere modtagelige for elektromagnetisk interferens (EMI) med stigende afstand, hvilket resulterer i reduceret pålidelighed. Selvom en anden mikrocontroller kan bruges som en sub-node for IIoT-endepunktets host-mikrocontroller, kan dette øge kompleksiteten unødigt, når dataene kun bruges til enkle digitale I/O-signaler.
I stedet for at udvide I/O-linjerne til bredere kontrol, kan udviklere bruge port-ekspandere som omkostningseffektive sub-noder fra IIoT-endepunktet.
Denne artikel beskriver port-ekspandernes rolle, før der introduceres to port-ekspandere fra Maxim Integrated. Disse ekspandere interfacer til host-mikrocontrolleren med serielle interfaces, der udvider den digitale I/O-funktionalitet i IIoT-noden markant. Det gør de mens de bevarer konventionel generel I/O (GPIO)-funktionalitet, såsom pulsbredde-modulering (PWM)-generering og detektion af interrupt.
Hvorfor port-ekspandere er nødvendige for et IIoT-netværk
Når du planlægger et IIoT-netværk, involverer et af de første trin beslutning om antallet af endepunkter. Hvert udstyr, der kræves for at synkronisere dets adfærd med resten af anlægget, kræver mindst et endepunkt. Et godt eksempel på dette ville være en monteringslinje i en fabrik. Hver station skal synkroniseres med processen af hele samlebåndet, for at udføre den rigtige samleprocedure på det rigtige tidspunkt.
Imidlertid er et IIoT-endepunkt i en monteringslinje i en fabrik muligvis ikke er lokaliseret til et fysisk område, men kan i stedet bruge ledninger eller kabler til at udvide IIoT-endepunktets host-mikrocontroller GPIO-porte adskillige meter væk, svarende til en stjerne-konfiguration med en host-mikrocontroller som hub . Terminering af hver node i stjernen kan have tilstrækkelig kompleksitet til at fungere som et sub-node fra det primære IIoT-endepunkt, men er muligvis ikke sofistikeret nok til at konfigureres som sit eget IIoT-endepunkt, med sin egen netværksforbindelse. Mens sub-noder kan designes til at kontrolleres af sin egen mikrocontroller, kan dette til simpel GPIO tilføje unødvendig kompleksitet og omkostninger.
Et eksempel er et IIoT-endepunkt, der styrer motorer ved hjælp af PWM-signaler. Hvis motorerne er flere meter væk, skal flere PWM-signaler sendes til motorerne, hvilket ville øge EMI fra omgivelserne. Afskærmet kabel kunne bruges til at transmittere PWM-signalerne, men det ville øge omkostningen for systemet og ville ikke eliminere fejl på grund af faseforsinkelser over afstand eller krydstale. I stedet kan en seriel bus som I2C eller SPI bruges til at sende kommandoer til et programmerbart system placeret i nærheden af motorerne, der generere PWM-signalerne. Denne elektronik ville være et programmeret sub-node til at generere de krævede PWM-signaler.
En praktisk løsning på sub-node kan være at bruge en port-ekspander over et seriel interface til host-mikrocontrolleren. Port-ekspandere er enklere at konfigurere end en mikrocontroller og udvide rækkevidden af host-mikrocontrollerens GPIO. I stedet for at køre 8 eller flere GPIO-linjer til en sub-node, kan en port-ekspander ved sub-noden nemt få adgang til host-mikrocontrolleren, via et simpelt I2C- eller SPI-interface. At skrive til et register i en port-ekspander sætter eller rydder GPIO'er under læsning returnerer status for GPIO'er, det samme som at kontrollere GPIO'er på hostens mikrocontroller. Port-ekspandere bevarer også meget af funktionaliteten i mikrocontroller-GPIO'er, herunder PWM-generering og interrupt-input.
Et eksempel på en letanvendelig port-ekspander er Maxim Integrated MAX7315AUE + T med 8 GPIO'er og et I2C-interface (figur 1).
Figur 1: Den Maxim Integrated MAX7315A-port-ekspander tilbyder op til 8 GPIO'er og kan generere et interrupt til host-mikrocontrolleren ved en ændring i tilstanden for enhver GPIO. Det fås adgang til et to-leder I2C-interface. (Billedkilde: Maxim Integrated)
MAX7315A understøtter 8 GPIO'er, som hver enkelt kan konfigureres uafhængigt som input eller open-drain output. En host-mikrocontroller kommunikerer med MAX7315A over en to-leder I2C-interface, der fungerer op til 400 kilohertz (kHz). Enhedens adresse på I2C-bussen er konfigureret af de tre adresseben AD [0: 2] pr. figur 1. Enheden kan også generere et interrupt til host-mikrocontroller.
MAX7315A tillader, at 8 GPIO'er kan styres af kun tre ben: de to I2C-ben og interrupt-benet. Enheden kan placeres i enhver afstand fra host-mikrocontrolleren, så længe forholdene tillader pålidelig I2C-kommunikation. Afhængigt af kortlayoutet og den omgivende EMI, med seriel clock (SCL), der kører ved en 400 kHz, er normalt tre meter en pålidelig afstand, og med en 100 kHz SCL kan man opnå 9 fod eller mere.
Det er dog vigtigt at teste dette i et aktivt miljø for at sikre, at omgivelsesforhold eller EMI ikke har en betydelig indflydelse på afstanden.
Detektering af interrupt ved en sub-node
Enheden understøtter en aktiv lav interruptsudgang på ben 13. Hvis interruptfunktionen ikke er nødvendig, kan ben 13 konfigureres som en 9. GPIO. Interruptet kan konfigureres til at gå lavt på enhver input ben overgang. Dette tillader, at host-mikrocontrolleren gøres opmærksom på aktivitet ved sub-noden uden at polle MAX7315A'en. Når interrupt-funktionen er aktiveret, fungerer enhver GPIO, der er konfigureret som en input og har en interrupt, aktiveret som en interrupt-input. Ved en ændring i tilstanden af en GPIO, der er konfigureret som interrupt, går ben 13 lavt for at signalere ændringen til host-mikrocontrolleren. Host-mikrocontrolleren læser derefter status for MAX7315A'en for at bestemme, hvilken GPIO der har ændret tilstand.
Denne proces forhindrer tab af interruptfunktionalitet ved at bruge en port-ekspandere til GPIO, som er kritisk ikke kun i IIoT men også i mikrocontroller-systemer, der kræver interrupts til effektiv drift af firmware.
Interruptfunktionen skal deaktiveres, før konfigurationen af MAX7315A ændres for at undgå generering af et falsk interrupt.
Selvom MAX7315A'en kan fungere fra en strømforsyning på 2 volt til 3,6 volt, er GPIO'er tolerent op til 5,5 volt. Dette gør det muligt for GPIO'erne at være kompatible med logiske standardniveauer inklusive 2,0 volt, 3,6 volt og 5,0 volt digitale systemer. Hver GPIO, der er konfigureret som en open-drain-udgang, kan source op til 50 milliamps (mA) i et logisk højt niveau. Outputene kan bindes sammen for at øge output-strømmen. Dette gør MAX7315A'en anvendelig til højstrøms LED-indikatorer og baggrundsbelysning til et tastatur.
PWM-generation ved sub-noden
MAX7315A'en tillader også programmerbare PWM-udgange uden intervention fra host-mikrocontrolleren. En intern 32 kHz oscillator bruges som tidsbase for PWM-bølgeformer. En 4-bit master-intensitet indstilling konfigurerer den tilgængelige 32 kHz PWM-intensitet for alle udgange fra 0 til 15, svarende til en prescaler. Hver PWM-udgangsbølgeform for hver GPIO er opdelt i 15 tidsvinduer. Indstillingen af master-intensitet bestemmer, hvor mange slots der er tilgængelige til PWM-generation. Hver individuelle GPIO har sit eget individuelle intensitetsregister, der bruges til at indstille driftscyklussen for bølgeformen i de aktive slots. Dette forklares bedst med et eksempel ved hjælp af outputbølgeformen til en individuel GPIO-ben (figur 2).
Figur 2: MAX7315A'en har en programmerbar PWM-generator, der fungerer ud fra et internt genereret clock på 32 kHz. Denne PWM har master-intensitet = 2 og en individuel GPIO-driftscyklus-intensitet = 2. (Billedkilde: Maxim Integrated)
Masterintensiteten er indstillet til 2, så kun slots 1 og 2 af de 15 slots er tilgængelige til PWM-generation, mens slots 3 til 15 er på logisk niveau nul. Den individuelle driftscyklusintensitet for denne GPIO er indstillet til 2, så bølgeformerne i slots 1 og 2 har en arbejdscyklus på 2/16 = 12,5 %.
PWM-masterintensiteten kan indstilles fra 0 til 15, hvor 15 betyder, at alle 15 slots er tilgængelige. En masterintensitet på nul betyder, at PWM-generation er deaktiveret for al GPIO, og 32 kHz clock er derfor slukket for at spare strøm.
Hver individuelle GPIO kan konfigurere en PWM-driftscyklusintensitet på 1 til 16, hvor 16 er en 100-procent arbejdscyklus, hvilket sætter slotten til en høj logik.
For yderligere fleksibilitet har hver GPIO en polaritetsbit, der kan invertere PWM-bølgeformen. Figur 2 viser bølgeformen med polaritetsbitten for denne GPIO, indstillet til 1. PWM-bølgeformen i figur 3 viser den samme GPIO med den samme masterintensitet og driftscyklusintensitet som figur 2, men polaritetsbiten er sat til 0.
Figur 3: Hver PWM-GPIO på Maxim Integrated MAX7215A har en polaritetsbit, der inverterer bølgeformen. Denne PWM har en masterintensitet = 2 og en individuel driftscyklusintensitet = 2 med polaritetsbitten = 0, der inverterer bølgeformen. (Billedkilde: Maxim Integrated)
Med denne fleksibilitet i PWM-bølgeformgenerering kan MAX7315A'en bruges i et sub-node fra et IIoT-endepunkt til at kontrollere dæmpning af LED-indikatorer, driver krafttransistorer til DC-motorer og styring af solenoider og aktuatorer. I stedet for at køre 8 digitale linjer, der bærer PWM-bølgeformer over et støjende industrielt miljø, er host-mikrocontrolleren bare nødt til at konfigurere MAX7315A'en og lade den køre uafhængigt.
Udvidelse af funktionalitet ved sub-noder
For mere komplekse sub-noder tilbyder Maxim Integrated MAX7301AAX + T port-ekspander med op til 28 GPIO'er. MAX7301AAX forbindes til host-mikrocontrolleren i IIoT-endepunktet ved hjælp af en standard 4-benet SPI-interface (figur 4). Det understøtter også en aktiv høj interruptfunktion som en alternativ funktion fra P31. MAX7315AAX'en kan konfigureres til at generere et intrrupt tilbage til host-mikrocontrolleren ved en ændring i tilstanden for en eller flere GPIO'er. Dette tillader, at 27 GPIO'er i en sub-node styres i et interrupt-drevet system ved kun at bruge 5 kontrollinjer: de 4 SPI-kontrollinjer og en interruptlinje.
Figur 4: Maxim Integrated MAX7301-port-ekspander har et SPI-interface og understøtter op til 28 GPIO-ben, der er tilgængelige til input eller output. Ben 31 understøtter en alternativ funktion som en aktiv høj-interrupt, der gør det muligt at kontrollere 27 GPIO-linjer ved hjælp af 5 styresignaler. (Billedkilde: Maxim Integrated)
MAX7301AAX fungerer over et bredt forsyningsområde på 2,25 til 5,5 volt, hvilket gør den kompatibel med de fleste digitale logik systemer. GPIO kan konfigureres som Schmitt-trigger-input med eller uden en intern pull-up-modstand. GPIO kan også konfigureres som push-pull-udgange, der kan synke op til 10 mA. Dette gør MAX7301AAX passende til grænseflade til kredsløb på logisk niveau, der bruges til at kontrollere andet udstyr, såsom industrielle controllere, samt systemovervågning og alarmkredsløb.
Konklusion
Efterhånden som designere udvider IIoT-endepunkternes fysiske rækkevidde, kan det at kontrollere sub-noder være en udfordring, da udvidelse af flere kontrollinjer over lange afstande skaber problemer med EMI, layout og kredsløbets kompleksitet. Ved at bruge port-ekspandere til at kontrollere sub-noder i interrupt-drevne systemer, kan udviklere forenkle layout af pc-kort og forbedre pålideligheden, mens de tilføjer betydelig funktionalitet til IIoT-endepunktet.
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.

