NOK | EUR | USD

Legg enkelt og effektivt til kostnadseffektive barnenoder til IIoT-sluttpunkter ved bruk av portutvidere

Av Bill Giovino

Bidrag fra Digi-Keys nordamerikanske redaktører

For utrustninger for industrielle tingenes internett (Industrial Internet of Things – IIoT) har funksjonene og fleksibiliteten til IIoT-endepunktene utvidet seg, ikke bare når det gjelder funksjonalitet, men også det fysiske styringsområdet er utvidet med mange meter fra vertsmikrokontrolleren i endepunktet. Mens noen få inngang-/utgangspinner (I/O-pinner) fra IIoT-endepunktets verts-mikrostyring kan brukes til å nå disse utvidede stedene, blir inngangs/utgangslinjene (I/O-linjer) mer utsatt for elektromagnetisk interferens (EMI) ved økende avstand, noe som resulterer i redusert pålitelighet. Selv om en annen mikrokontroller kan brukes som barnenode for IIoT-endepunktets vertsmikrokontroller, kan dette unødvendig øke kompleksiteten når dataene bare brukes til enkle digitale inngang-/utgangssignaler (I/O-signaler).

I stedet for å utvide inngang-/utgangslinjene (I/O linjene) for større kontroll, kan utviklere bruke portutvidelser som kostnadseffektive underordnede noder fra IIoT-endepunktet.

Denne artikkelen beskriver rollen som portutvidere, før to portutvidere introduseres fra Maxim Integrated. Disse utviderne kobler enkelt til vertsmikrokontrolleren med serielle grensesnitt som utvider IIoT-nodens digitale inngang-/utgangsfunksjonalitet (I/O-funksjonalitet) betydelig. De gjør dette mens de beholder konvensjonell generell inngang-/utgangsfunksjonalitet (I/O-funksjonalitet), for eksempel ved generering av pulsbreddemodulasjon (PWM) og avbruddsdeteksjon.

Hvorfor portutvidere er nødvendige for et IIoT-nettverk

Når du planlegger et IIoT-nettverk, innebærer et av de første trinnene å bestemme antall endepunkter. Hvert utstyr som kreves for å synkronisere atferden med resten av anlegget, vil kreve minst ett endepunkt. Et godt eksempel på dette ville være en montasjelinje (produksjonslinje) i en fabrikk. Hver stasjon må synkroniseres med fremdriften for at hele montasjelinjen for å utføre riktig monteringsprosedyre til rett tid.

Imidlertid kan et IIoT-endepunkt i en montasjelinje i en fabrikk ikke være lokalisert til ett fysisk område, men kan i stedet bruke ledninger eller kabler for å utvide GPIO-portene på IIoT-endepunktets vertsmikrokontroller noen meter unna, likt en stjernekonfigurasjon med vertsmikrokontrolleren som hub. Avslutningen av hvert stjernepunkt kan ha tilstrekkelig kompleksitet til å fungere som en barnenode av det viktigste IIoT-endepunktet, men kan ikke være sofistikert nok til å konfigureres som sitt eget IIoT-sluttpunkt med sin egen nettverkstilkobling. Selv om barnenoden kan utformes slik at den styres av sin egen mikrokontroller, kan dette for enkel GPIO gi unødvendig kompleksitet og kostnader.

Et eksempel fra den virkelige verden kan være et IIoT-endepunkt som styrer motorer ved bruk av PWM-signaler. Hvis motorene er flere meter unna, må flere PWM-signaler sendes til motorene, noe som vil øke EMI for området rundt. Skjermet kabel kan brukes til å overføre PWM-signalene, men det vil øke kostnadene for systemet, og vil ikke eliminere feil på grunn av faseforsinkelser over avstand eller krysstale. I stedet en seriell buss som jeg2C eller SPI kan brukes til å sende kommandoer til et programmerbart system lokalisert i nærheten av motorene som ville generere PWM-signalene. Denne elektronikken vil være en barnenode programmert til å generere de nødvendige PWM-signalene.

En praktisk løsning på barnenoden kan være å bruke en portutvidelse over et serielt grensesnitt til vertsmikrokontrolleren. Portutvidere er enklere å konfigurere enn en mikrokontroller, portutvidere utvider rekkevidden til vertsmikrokontrollerens GPIO. I stedet for å kjøre åtte eller flere GPIO-linjer til en barnenode, kan en portutvidelse ved barnenoden lett få tilgang til vertsmikrokontrolleren over en enkel I2C- eller et SPI-grensesnitt. Å skrive til et register i en portutvidelse setter eller tømmer GPIO-er, mens du leser returer for statusen til GPIO-er, det samme som å kontrollere GPIO-er på vertsmikrokontrolleren. Portutvidere beholder også mye av funksjonaliteten til mikrokontroller-GPIO-er, inkludert PWM-generering og avbruddsinnganger.

Et eksempel på en brukervennlig portutvider er Maxim Integrated MAX7315AUE+T med åtte GPIO-er og et I2C-grensesnitt (figur 1).

Skjema over portutvider Maxim Integrated MAX7315AFigur 1: Portutvideren Maxim Integrated MAX7315A har opptil åtte GPIO-er og kan generere et avbrudd til vertsmikrokontrolleren ved en tilstandsendring hos enhver GPIO. Det nås med en to-leder I2C-grensesnitt. (Bildekilde: Maxim Integrated)

MAX7315A støtter åtte GPIO-er, som hver kan konfigureres uavhengig som inngang eller open-utløpsutgang (open-drain-utgang). En verts-mikrokontroller kommuniserer med MAX7315A over en to-leders I2C-grensesnitt som fungerer opptil 400 kilohertz (kHz). Adressen til enheten på I2C-bussen konfigureres med en av de tre adressepinnene AD [0:2], som i figur 1. Enheten kan også generere et avbrudd til vertsmikrokontrolleren.

MAX7315A lar åtte GPIO-er enkelt administreres av bare tre pinner: de to I2C-pinnene og avbrytelsespinnen (interupt-pinne). Enheten kan plasseres et stykke fra vertsmikrokontrolleren, så lenge forholdene tillater pålitelig I2C kommunikasjon. Avhengig av kortkonstruksjon og den omgivende EMI, med seriell klokke (SCL) som kjører på 400 kHz, er vanligvis 1 meter en pålitelig avstand, og med en 100 kHz SCL kan man oppnå 3 meter eller mer.

Det er imidlertid viktig å teste dette i et aktivt miljø for å sikre at omgivelsesforhold eller EMI ikke har noen betydelig effekt på avstanden.

Avbruddsdeteksjon ved barnenoden

Enheten støtter en aktiv lav avbruddsutgang på pinne 13, men hvis avbruddsfunksjonen ikke er nødvendig, kan pinne 13 konfigureres som en niende GPIO. Avbruddet kan konfigureres til å gå lavt ved en hvilken som helst overgang på en inngangspinne. Dette gjør at vertsmikrokontrolleren kan gjøres oppmerksom på aktivitet ved barnenoden, uten å avspørre (polle) MAX7315A. Når avbrytelsesfunksjonen er aktivert, fungerer enhver GPIO som er konfigurert, som en inngang og har en avbrytelse aktivert, som en avbruddsinngang. Ved enhver endring i tilstanden til en hvilken som helst GPIO som er konfigurert som en avbryter, går pinnen 13 lav for å signalisere endringen til vertsmikrokontrolleren. Vertsmikrokontrolleren leser deretter statusen til MAX7315A for å bestemme hvilken GPIO som endret tilstand.

Denne prosessen forhindrer tap av avbrytelsesfunksjonalitet ved å bruke en portutvidelse for GPIO, som er kritisk – ikke bare i IIoT, men også i mikrokontrollersystemer som krever avbrytelser for effektiv firmwaredrift.

Avbruddsfunksjonen bør deaktiveres før konfigurasjonen av MAX7315A endres for å unngå generering av et falsk avbrudd.

Selv om MAX7315A kan fungere på en strømforsyning fra 2 til 3,6 volt, har GPIO-ene toleranse på 5,5 volt. Dette gjør at GPIO-er kan være kompatible med standard logiske nivåer, inkludert digitale systemer på 2,0 volt, 3,6 volt og 5,0 volt. Hver GPIO som er konfigurert som en open-utløpsutgang (open-drain-utgang), kan kilde opptil 50 milliamper (mA) på et logisk høyt nivå. Utgangene kan knyttes sammen for å øke utgangsstrømmen. Dette gjør MAX7315A anvendelig for LED-indikatorer for høy strøm og bakgrunnsbelysning på tastaturet.

PWM-generering ved barnenoden

MAX7315A gir også mulighet for programmerbare PWM-utganger uten inngrep fra vertsmikrokontrolleren. En innebygd 32 kHz oscillator brukes som tidsbase for PWM-bølgeformer. En 4-bits innstilling for masterintensitet konfigurerer den tilgjengelige 32 kHz PWM-intensiteten for alle utganger fra 0 til 15, i likhet med en frekvensdeler (prescaler). Hver PWM-utgangsbølgeform for hver GPIO er delt inn i 15 tidsluker. Innstillingen for masterintensitet bestemmer hvor mange spor som er tilgjengelige for PWM-generering. Hver individuelle GPIO har sitt eget individuelle intensitetsregister som brukes til å stille inn driftssyklusen for bølgeformen i de aktive sporene. Dette forklares best med et eksempel ved å bruke utgangsbølgeformen til en individuell GPIO-pinne (figur 2).

Graf for Maxim MAX7315A utgangsbølgeform av en individuell GPIO-pinneFigur 2: MAX7315A har en programmerbar PWM-generator som opererer fra en innebygd generert klokke på 32 kHz. Denne PWM-en har masterintensitet = 2 og en individuell GPIO-syklusintensitet = 2. (Bildekilde: Maxim Integrated)

Masterintensiteten er satt til 2, så bare spor 1 og 2 av de 15 sporene er tilgjengelige for PWM-generering, mens spor 3 til 15 er på logisk nivå null. Den individuelle driftssyklusintensiteten for denne GPIO er satt til 2, så bølgeformene i spor 1 og 2 er på en driftssyklus på 2/16 = 12,5 %.

PWM-masterintensiteten kan stilles fra 0 til 15, hvor 15 betyr at alle 15 sporene er tilgjengelige. En masterintensitet på null betyr at PWM-generering er deaktivert for all GPIO, og 32 kHz-klokken er slått av for å spare strøm.

Hver individuelle GPIO kan konfigurere en PWM-syklusintensitet på 1 til 16, hvor 16 er en 100 prosent syklus, og sette sporet til en høy logikk.

For ytterligere fleksibilitet har hver GPIO en polaritetsbit som kan invertere PWM-bølgeformen. Figur 2 viser bølgeformen med polaritetsbiten for den GPIO satt til 1. PWM-bølgeformen i figur 3 viser den samme GPIO med samme masterintensitet og driftssyklusintensitet som figur 2, men polaritetsbiten er satt/slettet til 0.

Graf for Maxim Integrated MAX7215A har en polaritetsbit som inverterer bølgeformenFigur 3: Hver PWM GPIO på Maxim Integrated MAX7215A har en polaritetsbit som inverterer bølgeformen. Denne PWM-en har en masterintensitet = 2 og en individuell driftssyklusintensitet = 2 med polaritetsbiten = 0 som inverterer bølgeformen. (Bildekilde: Maxim Integrated)

Med denne fleksibiliteten i PWM-bølgeform, kan MAX7315A brukes i en barnenode av et IIoT-endepunkt til å styre nedtoning av LED-indikatorer, drive effekt-transistorer for likestrømsmotorer (DC-motorer), samt styring av solenoider og aktuatorer. Nå, i stedet for å kjøre åtte digitale linjer som har PWM-bølgeformer over et støyende industrimiljø, trenger vertsmikrokontrolleren bare å konfigurere MAX7315A og la den kjøre uavhengig.

Utvidet funksjonalitet ved barnenoder

For mer komplekse barnenoder, tilbys Maxim Integrated MAX7301AAX+T portutvider med opptil 28 GPIO-er. MAX7301AAX kobles til vertsmikrokontrolleren i IIoT-endepunktet ved hjelp av et standard firepinners SPI-grensesnitt (figur 4). Den støtter også en aktiv avbruddsfunksjon med aktiv høy som en alternativ funksjon av P31. MAX7315AAX kan konfigureres til å generere et avbrudd tilbake til vertsmikrokontrolleren ved endring i tilstanden til en eller flere GPIOer. Dette gjør at 27 GPIO-er i en barnenode kan kontrolleres i et avbruddsstyrt system ved å bruke bare fem kontrolllinjer: de fire SPI-kontrolllinjene og en avbruddslinje.

Skjema over SPI-grensesnittet til portutvider Maxim Integrated MAX7301Figur 4: Portutvideren Maxim Integrated MAX7301 har SPI-grensesnitt og støtter opptil 28 GPIO-pinner som er tilgjengelige for inngang eller utgang. Pin 31 støtter en alternativ funksjon som et aktivt høyt avbrudd, slik at 27 GPIO-linjer kan styres ved hjelp av fem styresignaler. (Bildekilde: Maxim Integrated)

MAX7301AAX fungerer over et bredt forsyningsområde på 2,25 volt til 5,5 volt, noe som gjør den kompatibel med de fleste digitale logikksystemer. GPIO kan konfigureres som Schmitt-trigger-innganger med eller uten en innebygd sluttmotstand (pullup resistor). GPIO kan også konfigureres som push-pull-utganger (skyv og trekk-utganger) som kan synke opptil 10 mA. Dette gjør MAX7301AAX egnet for grensesnitt til kretser på logisk nivå som brukes til å kontrollere annet utstyr som industrielle kontrollere, samt systemovervåkning og alarmkretser.

Konklusjon

Når konstruktørene utvider IIoT-endepunktenes fysiske rekkevidde, kan det å kontrollere barnenoder være en utfordring, fordi det å utvide flere kontrolllinjer over mange meters avstand skaper problemer med EMI, layout og kretskompleksitet. Ved å bruke portutvidere for å kontrollere barnenoder i avbruddsdrevne systemer, kan utviklerne forenkle layout av kretskort og forbedre påliteligheten mens de legger betydelig funksjonalitet 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 Digi-Key Electronics or official policies of Digi-Key Electronics.

Om skribenten

Bill Giovino

Bill Giovino is an Electronics Engineer with a BSEE from Syracuse University, and is one of the few people to successfully jump from design engineer, to field applications engineer, to technology marketing.

For over 25 years Bill has enjoyed promoting new technologies in front of technical and non-technical audiences alike for many companies including STMicroelectronics, Intel, and Maxim Integrated. While at STMicroelectronics, Bill helped spearhead the company’s early successes in the microcontroller industry. At Infineon Bill orchestrated the company’s first microcontroller design wins in U.S. automotive. As a marketing consultant for his company CPU Technologies, Bill has helped many companies turn underperforming products into success stories.

Bill was an early adopter of the Internet of Things, including putting the first full TCP/IP stack on a microcontroller. Bill is devoted to the message of “Sales Through Education” and the increasing importance of clear, well written communications in promoting products online. He is moderator of the popular LinkedIn Semiconductor Sales & Marketing Group and speaks B2E fluently.

Om denne utgiveren

Digi-Keys nordamerikanske redaktører