Kustannustehokkaiden lapsisolmujen lisääminen helposti ja tehokkaasti IIoT-päätepisteisiin käyttämällä porttilaajentimia

Kirjoittaja Bill Giovino

Julkaisija DigiKeyn kirjoittajat Pohjois-Amerikassa

Teollisen esineiden internetin (IIoT) sovelluksissa IIoT-päätepisteiden ominaisuuksia ja joustavuutta on laajennettu paitsi toiminnallisuudessa, myös laajentamalla ohjattavaa fyysistä aluetta useampien jalkojen etäisyydelle päätepisteen isäntämikrokontrollerista. Vaikka IIoT-päätepisteen isäntämikrokontrollerin I/O-nastoilla voidaan saavuttaa tällaiset laajennetut sijaintipaikat, nämä I/O-linjat altistuvat sähkömagneettisille häiriöille (EMI) etäisyyden kasvaessa, ja tämä johtaa luotettavuuden laskemiseen. Vaikka toista mikrokontrolleria voidaan käyttää lapsisolmuna IIoT-päätepisteen isäntämikrokontrollerille, tämä saattaisi turhaan lisätä kompleksisuutta, koska dataa käytetään ainoastaan yksinkertaisiin digitaalisiin I/O-signaaleihin.

Sen sijaan että ohjauslaajennukseen käytettäisiin I/O-linjoja, kehittäjät voivat käyttää porttilaajentimia kustannustehokkaina lapsisolmuina IIoT-päätepisteelle.

Tässä artikkelissa tarkastellaan porttilaajentimien roolia ja sen jälkeen esitellään kaksi porttilaajenninta Maxim Integrated -yritykseltä. Nämä laajentimet on helppo yhdistää isäntämikrokontrolleriin sarjaliitännällä, joka laajentaa merkittävästi IIoT-solmun digitaalista I/O-toiminnallisuutta. Samalla ne säilyttävät perinteisen GPIO (General Purpose I/O) -toiminnallisuuden, esimerkkinä pulssinleveysmodulaation (PWM) generoiminen ja keskeytysten tunnistus.

Miksi IIoT-verkossa tarvitaan porttilaajentimia?

Kun IIoT-verkkoa suunnitellaan, yksi ensimmäisistä vaiheista on päättää päätepisteiden lukumäärä. Jokainen laite, jonka on synkronisoitava toimintansa muun järjestelmän kanssa, tarvitsee ainakin yhden päätepisteen. Tehtaan kokoonpanolinja on hyvä esimerkki tästä. Jokainen asema on synkronoitava koko kokoonpanolinjan liikkeeseen, jotta oikea kokoonpanotoimenpide voidaan suorittaa oikeaan aikaan.

IIoT-päätepiste tehtaan kokoonpanolinjalla ei kuitenkaan välttämättä sijaitse samalla fyysisellä alueella vaan saattaa käyttää johdotusta tai kaapeleita IIoT-päätepisteen isäntämikrokontrollerin GPIO-porttien laajentamiseksi useiden jalkojen päähän. Tämä muistuttaa tähtikonfiguraatiota, jossa isäntämikrokontrolleri toimii keskipisteenä. Terminointi tähden jokaisessa pisteessä saattaa olla riittävän kompleksinen toimiakseen IIoT-päätepisteen lapsisolmuna, mutta se ei välttämättä ole riittävän sofistikoitunut , jotta se voitaisiin konfiguroida omaksi IIoT-päätepisteekseen omalla verkkoyhteydellä. Lapsisolmu voidaan suunnitella siten, että sitä ohjataan omalla mikrokontrollerilla, mutta tämä voi lisätä tarpeetonta kompleksisuutta ja kustannuksia, jos kaikki mitä tarvitaan on vain yksinkertainen GPIO-toiminnallisuus.

Reaalimaailman esimerkki voisi olla IIoT-päätepiste, joka ohjaa moottoreita käyttäen PWM-signaaleja. Jos moottorit ovat useamman jalan etäisyydellä, moottoreille täytyisi lähettää useita PWM-signaaleja. Tämä lisäisi EMI-häiriöitä lähialueella. PWM-signaalien siirtoon voitaisiin käyttää suojattua kaapelia, mutta tämä kasvattaisi järjestelmän hintaa, eikä eliminoisi etäisyydestä johtuvien vaiheviiveiden synnyttämiä virheitä eikä ylikuulumista. Moottoreiden lähellä olevalle ohjelmoitavalle järjestelmälle voitaisiin kuitenkin lähettää käskyjä käyttäen sellaista sarjaväylää kuten I2C tai SPI, ja kyseinen järjestelmä voisi sitten generoida PWM-signaalit. Tämä elektroniikka toimisi lapsisolmuna, joka ohjelmoidaan generoimaan halutut PWM-signaalit.

Käytännöllinen ratkaisu lapsisolmuksi olisi käyttää porttilaajenninta, jota isäntämikrokontrolleri ohjaa sarjaliitännän kautta. Porttilaajentimien konfiguroiminen on yksinkertaisempaa kuin mikrokontrollerin ja ne laajentavat isäntämikrokontrollerin GPIO-kantamaa. Sen sijaan, että lapsisolmuun viedään kahdeksan GPIO-linjaa tai enemmän, isäntämikrokontrolleri voi helposti ohjata lapsisolmun porttilaajenninta yksinkertaisen I2C- tai SPI-rajapinnan kautta. Porttilaajentimen rekisteriin kirjoittaminen asettaa tai nollaa GPIO-portit kun taas lukeminen kertoo GPIO-porttien tilan, sama kuin isäntämikrokontrollerin GPIO-porttien ohjaus. Porttilaajentimien tarjoama toiminnallisuus on paljolti samanlaista kuin mikrokontrollerin GPIO-portit, mukaan lukien PWM-signaalin generointi ja tulokeskeytykset.

Esimerkki helppokäyttöisestä porttilaajentimesta on Maxim Integrated MAX7315AUE+T kahdeksalla GPIO-portilla ja I2C-rajapinnalla (kuva 1).

Kaavio Maxim Integrated MAX7315A -porttilaajentimestaKuva 1: Maxim Integrated MAX7315A -porttilaajennin tarjoaa kahdeksan GPIO-porttia ja se voi generoida keskeytyksen isäntämikrokontrollerille jos jonkin GPIO-portin tila muuttuu. Sitä käytetään kaksijohtoisen I2C-rajapinnan kautta. (Kuvan lähde: Maxim Integrated)

MAX7315A tukee kahdeksaa GPIO-porttia. Niistä jokainen voidaan konfiguroida erikseen tuloksi tai lähdöksi avoimella nielulla. Isäntämikrokontrolleri kommunikoi MAX7315A-piirin kanssa käyttäen kahden johtimen I2C-rajapintaa, joka toimii jopa 400 kilohertsin (kHz) taajuudella. Laitteen osoite I2C-väylässä konfiguroidaan kolmella osoitenastalla AD [0:2], katso kuva 1. Laite voi myös generoida keskeytyksen isäntämikrokontrollerille.

MAX7315A tekee kahdeksan GPIO-portin hallinnasta helppoa vain kolmen nastan avulla: kaksi I2C-nastaa ja keskeytysnasta. Laite voidaan sijoittaa halutun matkan päähän isäntämikrokontrollerista niin kauan kuin I2C-kommunikointi pysyy luotettavana. Piirilevyn asettelusta ja ympäristön EMI-häiriöistä riippuen sarjakellosignaalin (SCL) taajuudella 400 kHz voidaan tavallisesti saavuttaa kolmen jalan luotettava etäisyys ja 100 kHz:n SCL-signaalilla voidaan saavuttaa yhdeksän jalkaa tai enemmän.

On kuitenkin tärkeää testata tämä aidossa ympäristössä ja varmistaa, ettei ympäristöolosuhteilla eikä EMI-häiriöillä ole merkittävää vaikutusta etäisyyteen.

Keskeytyksen tunnistus lapsisolmussa

Laite tukee alhaalla aktiivista keskeytyslähtöä nastassa 13, mutta ellei keskeytystoimintoa tarvita, nasta 13 voidaan konfiguroida GPIO-portiksi numero 9. Keskeytys voidaan konfiguroida laskemaan alhaiseksi aina kun jonkin nastan tila muuttuu. Tämän avulla isäntämikrokontrolleri saa tiedon toiminnasta lapsisolmussa tarvitsematta pollata MAX7315A-piiriä. Kun keskeytystoiminta on käytössä, jokainen tuloksi konfiguroitu GPIO, jonka keskeytys on käytössä, toimii keskeytystulona. Aina kun jonkin keskeytykseksi konfiguroidun GPIO-portin tila muuttuu, nasta 13 laskee alhaiseksi ilmoittaakseen muutoksesta isäntämikrokontrollerille. Isäntämikrokontrolleri lukee tämän jälkeen MAX7315A-piirin tilan selvittääkseen mikä GPIO muutti tilaa.

Tämä prosessin ansiosta keskeytystoimintaa ei menetetä, kun porttilaajenninta käytetään GPIO-portteja varten. Tämä on kriittisen tärkeää IIoT-järjestelmien lisäksi mikrokontrollerijärjestelmissä, joissa keskeytyksiä tarvitaan laitteiston tehokasta toimintaa varten.

Keskeytystoiminto tulisi poistaa käytöstä ennen kuin MAX7315A-piirin konfiguraatiota muutetaan. Tällä estetään virheellisten keskeytyksien muodostuminen.

Vaikka MAX7315A-piiriä voidaan käyttää 2–3,6 voltin virtalähteellä, GPIO-portit kestävät 5,5 volttia. Tämän ansiosta GPIO-portit ovat yhteensopivia tavallisten logiikkatasojen kanssa, mukaan lukien 2,0 voltin, 3,6 voltin ja 5,0 voltin digitaaliset järjestelmät. Jokainen GPIO, jonka lähtö on konfiguroitu avoimeksi nieluksi, voi syöttää korkealla logiikkatasolla 50 milliampeeria (mA). Lähtöjä voidaan yhdistää lähtövirran lisäämiseksi. Tämän ansiosta MAX7315A-piiriä voidaan käyttää virraltaan korkeiden LED-merkkivalojen ja näppäimistön taustavalojen kanssa.

PWM-generointi lapsisolmussa

MAX7315A mahdollistaa ohjelmoitavat PWM-lähdöt itsenäisesti ilman isäntämikrokontrolleria. PWM-aaltomuotojen aikaperusteena käytetään sisäistä 32 kHz:n oskillaattoria. Intensiteetin 4-bittinen pääasetus konfiguroi käytettävän 32 kHz:n PWM-intensiteetin kaikille lähdöille 0–15 samalla tavalla kuin esiskaalain. Jokaisen GPIO-portin jokaisen PWM-lähdön aaltomuoto on jaettu 15 aikaväliin. Intensiteetin pääasetus määrittää montako väliä PWM-signaalin generointiin käytetään. Jokaisella GPIO-portilla on oma erillinen intensiteettirekisterinsä, jota käytetään käyttöjakson asettamiseen aktiivisten aikavälien aaltomuodolle. Tämä selittyy parhaiten käyttämällä esimerkkinä yksittäisen GPIO-lähdön aaltomuotoa (kuva 2).

Kaaviossa Maxim MAX7315A -piirin yhden GPIO-lähdön aaltomuotoKuva 2: MAX7315A sisältää ohjelmoitavan PWM-generaattorin, joka käyttää sisäisesti generoitua 32 kHz:n kelloa. PWM:n pääintensiteetti = 2 ja yksittäisen GPIO-portin käyttöjaksointensiteetti = 2. (Kuvan lähde: Maxim Integrated)

Pääintensiteetiksi on asetettu 2, joten ainoastaan jaksot 1 ja 2 yhteensä 15 jaksosta ovat käytössä PWM-signaalin generoimista varten, jaksot 3–15 ovat logiikkatasolla nolla. Tämän yksittäisen GPIO-portin käyttöjaksointensiteetiksi on asetettu 2, joten jaksojen 1 ja 2 aaltomuodot ovat käyttöjakson aikana 2/16 = 12,5 %.

PWM:n pääintensiteetti voidaan asettaa välille 0–15, missä 15 tarkoittaa että kaikki 15 aikaväliä ovat käytössä. Pääintensiteetti nolla tarkoittaa, että PWM-signaalin generointi on pois käytöstä kaikille GPIO-porteille, joten myös 32 kHz:n kello sammutetaan virran säästämiseksi.

Jokainen yksittäinen GPIO voi konfiguroida PWM-käyttöjaksointensiteetiksi tason 1–16, jossa 16 on 100 prosentin käyttöjakso, asettamalla jakson loogisesti korkealle.

Jokaisella GPIO-portilla on polariteettibitti, jolla PWM-aaltomuoto voidaan kääntää. Tämä lisää joustavuutta. Kuva 2 esittää aaltomuodon, kun kyseisen GPIO-portin polariteettibitti asetetaan arvoon 1. Kuvan 3 PWM-aaltomuoto esittää saman GPIO-portin samalla pääintensiteetillä ja käyttöjaksointensiteetillä kuin kuvassa 2, mutta polariteettibitti on nollattu arvoon 0.

Kaaviossa Maxim Integrated MAX7215A, piiri käyttää polariteettibittiä, joka kääntää aaltomuodonKuva 3: Jokaisella Maxim Integrated MAX7215A -piirin PWM-GPIO-portilla on polariteettibitti, joka kääntää aaltomuodon. Tämän PWM-signaalin pääintensiteetti = 2 ja sen yksittäinen käyttöjaksointensiteetti = 2 ja polariteettibitti = 0, mikä kääntää aaltomuodon. (Kuvan lähde: Maxim Integrated)

Koska MAX7315A on näin joustava PWM-aaltomuodon generoinnissa, sitä voidaan käyttää mm. IIoT-päätepisteen lapsisolmussa ohjaamaan LED-merkkivalojen himmennystä, ohjaamaan DC-moottorien transistoreja sekä ohjaamaan solenoideja ja aktuaattoreita. Sen sijaan että PWM-aaltomuotoja kuljetettaisiin häiriöllisessä teollisuusympäristössä kahdeksaa digitaalista linjaa pitkin, isäntämikrokontrollerin on vain konfiguroitava MAX7315A ja annettava sen toimia itsenäisesti.

Lapsisolmujen toiminnallisuuden laajentaminen

Kompleksisempia lapsisolmuja varten Maxim Integrated tarjoaa MAX7301AAX+T-laajentimen 28 GPIO-portilla. MAX7301AAX yhdistetään IIoT-päätepisteen isäntämikrokontrolleriin käyttäen tavallista neljän nastan SPI-rajapintaa (kuva 4). Se tukee myös ylhäällä aktiivista keskeytystoimintoa vaihtoehtoisena toimintoja P31-portille. MAX7315AAX voidaan konfiguroida generoimaan keskeytys isäntämikrokontrollerille kun yhden tai useamman GPIO-portin tila muuttuu. Tämän ansiosta lapsisolmussa voidaan kontrolloida keskeytysohjattua järjestelmää käyttäen 27 GPIO-porttia käyttäen vain viittä ohjauslinjaa: neljä SPI-ohjauslinjaa ja yksi keskeytyslinja.

Kaavio Maxim Integrated MAX7301 -porttilaajentimesta SPI-rajapinnallaKuva 4: Maxim Integrated MAX7301 -porttilaajentimessa käytetään SPI-rajapintaa ja se tukee 28 GPIO-nastaa, joita voidaan käyttää tulona tai lähtönä. Nasta 31 tukee vaihtoehtoista toimintoa ylhäällä aktiivisena keskeytyksenä, minkä ansiosta 27 GPIO-linjaa voidaan ohjata käyttäen viittä ohjaussignaalia. (Kuvan lähde: Maxim Integrated)

MAX7301AAX käyttää laajaa 2,25 – 5,5 voltin käyttöjännitealuetta, minkä ansiosta se on yhteensopiva useimpien digitaalisten logiikkajärjestelmien kanssa. GPIO-portit voidaan konfiguroida Schmitt-laukaisutuloiksi sisäisellä ylösvetovastuksella tai ilman. GPIO-portit voidaan konfiguroida myös työntö-veto-lähdöiksi, jotka voivat ottaa vastaan 10 mA. Tämän ansiosta MAX7301AAX sopii hyvin liitettäväksi sellaisiin logiikkatasoisiin piireihin, joita käytetään ohjaamaan muita laitteita, esimerkiksi teollisuuden ohjainlaitteita, samoin kuin järjestelmän seuraamiseen ja hälytyspiireihin.

Yhteenveto

Kun kehittäjät yrittävät laajentaa IIoT-päätepisteiden fyysisiä ulottuvuuksia, lapsisolmujen ohjaaminen voi osoittautua haasteelliseksi, koska useiden ohjauslinjojen vieminen useiden jalkojen etäisyydelle synnyttää EMI- ja asetteluongelmia ja lisää piirin kompleksisuutta. Kun porttilaajentimia käytetään lapsisolmujen ohjaamiseen keskeytysohjatuissa järjestelmissä, kehittäjät voivat yksinkertaistaa piirilevyn asettelua ja parantaa luotettavuutta sekä samalla lisätä IIoT-päätepisteeseen huomattavasti toiminnallisuutta.

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.

Tietoja kirjoittajasta

Image of Bill Giovino

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.

Tietoja tästä julkaisijasta

DigiKeyn kirjoittajat Pohjois-Amerikassa