Miten IoT-päätepisteissä olevat anturit voidaan kytkeä tehokkaasti käyttäen 1-Wire-tiedonsiirtoa

Kirjoittaja Bill Giovino

Julkaisija DigiKeyn kirjoittajat Pohjois-Amerikassa

Vaikka esineiden internetin (IoT) ja teollisen IoT:n (IIoT) päätepisteillä on yleensä paikalliset ohjausalueet, jotkin niistä on kytkettävä yksinkertaisiin antureihin, jotka ovat yli metrin päässä isäntämikrokontrollerin sijainnista. Perinteisesti SPI- tai I²C-sarjaliitäntöjä käytetään helppoon kommunikointiin näiden antureiden kanssa. Kun ohjausalgoritmeista tulee kuitenkin monimutkaisempia ja antureita on otettava käyttöön lisää, mikrokontrollerin on käytettävä useampia SPI- ja I²C-johtoja näiden antureiden saavuttamiseksi. Tämä lisää johdotuksen monimutkaisuutta, mikä nostaa konfigurointi- ja ylläpitokustannuksia erityisesti etäisyyksien kasvaessa.

Tässä artikkelissa näytetään, miten kehittäjät voivat käyttää Maxim Integrated 1-Wire -johdinprotokollaa kustannustehokkaasti IoT-antureiden kytkemiseen käyttämällä vain yhtä johdinta sekä maadoitusta. Artikkelissa käsitellään 1-Wire-protokollan etuja, kuten anturien kantaman merkittävää laajentamista ja virran ja datan syöttämistä samojen johdinten kautta. Sen jälkeen artikkelissa esitellään siltalaite, joka muuntaa 1-Wire-signaalit joko SPI- tai I²C-muotoon, sekä kehityssarja, johon kuuluu ohjelmisto, joka auttaa suunnittelijoita pääsemään alkuun.

IoT- ja IIoT-antureiden käytön laajentaminen

IoT- ja IIoT-verkkotoiminnan laajentamisessa on kyse järjestelmien ja tuotantoprosessien tehostamisesta ja samalla toimintojen laajentamisesta. Tähän sisältyy datan kerääminen antureiden avulla. Kodissa voi olla yhdessä huoneessa lämpötila-anturin sisältävä termostaatti, kun taas automatisoidussa rakennuksessa tai IIoT-verkossa huoneeseen sekä koko rakennukseen tai laitokseen voidaan sijoittaa useita lämpötila- ja kosteusantureita. Esimerkiksi lämmitys-, ilmanvaihto- ja ilmastointikanaviin (LVI) voidaan sijoittaa paineantureiden rinnalle lisäantureita. Myös turvajärjestelmissä voidaan käyttää erityyppisiä antureita, ja niitä voidaan sijoittaa useisiin paikkoihin.

Myös tuotanto- ja kuljetinhihnajärjestelmissä käytetään yhä enemmän antureita prosessinvalvontaan ja tiedonkeruuseen. Näin voidaan esimerkiksi analysoida, miten järjestelmiä tehostamalla säästetään energiaa ja samalla parannetaan turvallisuutta.

Yleisimmät anturit näissä sovelluksissa ovat ympäristöantureita, kuten lämpötila-, kosteus- ja paineantureita, visuaalisia antureita, kuten visuaalisia valoantureita ja kapasitiivisia lähestymisantureita sekä asentoantureita, kuten mikroelektromekaanisten järjestelmien (MEMS) kiihtyvyysantureita, MEMS-gyroskooppeja ja tärinäantureita. MEMS-teknologioiden miniatyrisointi ja kehittyminen ovat johtaneet siihen, että anturikotelot ovat peukalonkynttä pienempiä ja niiden virrankulutus on vain muutama sata milliampeeria (mA). Useimpia näistä antureista on helppo käyttää SPI- tai I²C-tiedonsiirtoliitännän kautta, joista kumpikin löytyy lähes kaikista mikrokontrollereista. Näitä yksinkertaisia antureita kytkettäessä voi olla epäkäytännöllistä muodostaa kokonainen IoT- tai IIoT-päätepiste tai -lapsisolmu vain lämpötilan mittaamista varten, joten usein on yksinkertaisempaa ja nopeampaa kytkeä SPI- tai I²C-tiedonsiirtojohdot suoraan antureihin.

Joissakin tapauksissa käytetään edelleen analogisia antureita, kuten korkean lämpötilan lämpöpareja ja eräitä paineantureita. Tällöin mikrokontrolleri käyttää SPI- tai I²C-rajapintaa kommunikoidakseen analogi-digitaalimuuntimen kanssa (ADC), joka sijaitsee samassa paikassa anturin kanssa ja lukee analogisen anturin paikallisesti. Näin vältetään analogisten anturijohtojen jännitehäviöt ja parannetaan tarkkuutta.

Yhteys SPI- ja I²C-etäantureiden kanssa

Mikrokontrolleri kommunikoi näiden antureiden kanssa laajentamalla SPI- ja I²C-datajohtojen kantamaa. I²C:n kantama on kuitenkin rajoitettu enintään metriin, ja SPI:llä on samanlaiset rajoitukset. Lisäksi täysin kaksisuuntainen SPI vaatii neljä nastaa, sekä kullekin yksittäiselle oheislaitteelle valintanastan. Tämän vuoksi neljän SPI-oheislaitteen käyttämiseen väylän kautta tarvitaan seitsemän nastaa sekä virta ja maadoitus, eli yhteensä yhdeksän nastaa. Vuorosuuntainen I²C vaatii kaksi nastaa sekä virran ja maadoituksen oheislaitteelle, eli yhteensä neljä johtoa. Samanaikaisesti monet nopeat signaalit lisäävät sähkömagneettisia häiriöitä (EMI), jotka voivat aiheuttaa ylikuulumista, mikä heikentää signaalien eheyttä ja järjestelmän luotettavuutta.

Tarvitaan ratkaisu, joka minimoi virta- ja datajohdotuksen sekä yksinkertaistaa antureiden käyttöä, mutta säilyttää yhteensopivuuden nykyisten I²C- ja SPI-antureiden kanssa.

Maxim Integrated kehitti 1-Wire-protokollan, joka voidaan kytketä useimpiin SPI- tai I²C-antureihin yhdellä johtimella sekä maadoituksella ja joka ratkaisee näin ongelman, joka liittyy etäantureiden kytkemiseen pidemmillä etäisyyksillä ja samalla johdinten määrän vähentämiseen. Protokolla vähentää SPI:n kuuden ja I²C:n neljän johtimen määrän vain kahteen johtimeen, jotka kuljettavat sekä dataa että sähköä jopa 100 metrin päähän.

1-Wire-käyttö

Käytettäessä 1-Wirea etäanturilla on 1-Wire-tiedonsiirtosilta, joka muuntaa 1-Wire-protokollan yhteensopiviksi anturiin yhdistettäviksi SPI- tai I²C-signaaleiksi. Sekä 1-Wire-johdinsilta että anturi käyttävät vain 1-Wire-signaalista ja maajohdosta saatavaa loistehoa. Tämä mahdollistaa 1-Wire-signaalien reitittämisen pienen pinta-alan kautta ja säästää kustannuksia, koska johdinmäärä on alhaisempi.

SPI ja I²C käyttävät molemmat omaa kellosignaalia, mutta 1-Wire sisällyttää kellon datasignaaliin. SPI osoittaa tietyn oheislaitteen käyttämällä erillistä valintasignaalia kullekin oheislaitteelle, kun taas I²C käyttää 7-bittistä väyläosoitetta, joka lähetetään datajohtoa pitkin. 1-Wire käyttää 56-bittistä osoitetta, joka on kiinteästi määritetty kullekin yksittäiselle tiedonsiirtosillalle. Tämä laajempi osoitealue ei ainoastaan kasvata erillisten oheislaitteiden lukumäärää väylässä, vaan se parantaa myös turvallisuutta, koska hyökkääjän on vaikeampi arvata 1-Wire-väylällä olevan oheislaitteen osoite.

Sanakoko on 1-Wire-oheislaiteväylällä 8 bittiä. 1-Wire-väylän isäntä toimiva mikrokontrolleri voi toteuttaa ohjelmallisesti 1-Wire-protokollan, mutta myös yksinkertainen UART-ajuri tukee sitä. Tällöin jopa 8-bittinen mikrokontrolleri voi toimia 1-bittisenä väyläisäntänä. 1-bittinen väylä voi sisältää SPI- tai I²C-oheislaitteita, mutta ei molempia. Tämä rajoite estää ristiriitoja ja törmäyksiä väylällä ja yksinkertaistaa protokollan ohjelmointia.

Reaalimaailman 1-Wire-ratkaisut

Maxim Integrated tarjoaa suunnittelijoille, jotka haluavat kytkeä SPI- tai I²C-oheislaitteen 1-Wire-väylän kautta, DS28E18Q+T 1-Wire-to-I²C/SPI -sillan komentosekvensserin kanssa (kuva 1).

Kaavio: Maxim Integrated DS28E18Q+T 1-Wire-to-I²C/SPI -silta komentosekvensserilla (suurenna klikkaamalla)Kuva 1: Komentosekvensserilla varustettu DS28E18Q+T 1-Wire-to-I²C/SPI -silta tarjoaa kytkennät 1-Wire-väylän IO- ja GND-nastoille. (Kuvan lähde: Maxim Integrated)

Kuvasta 1 nähdään, että loistehoa saadaan väylästä, kun IO on ylhäällä, ja sitä tarjotaan SENS_VDD-nastan kautta oheislaitteen käytettäväksi. Silta puskuroi ja muuntaa 1-Wire-komennot asianmukaisiksi I²C- tai SPI-komennoiksi.

IO-nasta ja GND kytketään 1-Wire-väylään ja niiden signaali lähetetään etuasteelle ja sen tilakoneelle. Kukin laite tunnistetaan 56-bittisestä ROM-tunnuksesta, jonka etuliitteenä on 8-bittinen 1-Wire-perhekoodi, joka määrittää DS28E18Q+T-version. Sen ansiosta mikrokontrollerin laiteohjelmisto voi tunnistaa yksiselitteisesti tietyn DS28E18Q+T:n, jotta se voi vastata riittävän joustavasti kaikkiin laiteperheen muutoksiin. Laitteella on 48-bittinen yksilöllinen sarjanumero sisältäen 8-bittisen CRC (Cyclic Redundancy Check) -koodin

Etuaste lähettää muunnetut tiedot komentosekvensserille käyttämällä 144 tavun komentopuskuria, joka sisältää 128 tavua IO-väylän dataa varten ja 16 tavua sisäiseen käyttöön. Komentosekvensseri käsittelee komennot ja voi tallentaa puskuriinsa jopa 512 tavua I²C- tai SPI-komentoja lähetettäväksi myöhemmin oheislaitteelle sen sijaan, että 1-Wire-väylä käsittelisi komentoja yksi kerrallaan.

Tämän 512 tavun puskurin avulla DS28E18Q+T voi myös koordinoida omaa sisäistä tehokäyttäytymistään niin, että oheislaitteen kanssa tapahtuvan tiedonsiirron ajoitus mahdollistaa loistehon säilyttämisen. Komentosekvensseri säilyttää tämän ajoituksen, kun se lähettää ohjeita I²C/SPI-masterille sekä GPIO-ohjaimelle, jotka käsittelevät datan I²C- ja SPI-standardien mukaisesti.

Ulkoinen 470 nanofaradin (nF) kondensaattori on kytketty CEXT-nastaan, joka toimii DS28E18Q+T-piirin tehoreservinä 1-Wire-väylän käytön aikana. Kytketty oheislaite voi käyttää loistehoa SENS_VDD-nastan kautta. SPI-käytössä neljä nastaa, SS#, MISO, MOSI ja SCLK, tarjoavat täyden kaksisuuntaisen tiedonsiirron kytketyn oheislaitteen kanssa. I²C-käytössä hyödynnetään vain kahta nastaa SDA ja SCL, kaksi muuta ovat vaihtoehtoisia toimintonastoja. SPI-käytön nastat SS# ja MISO eivät ole käytössä I²C-toiminnassa, joten niitä voidaan käyttää yleiskäyttöisenä I/O-nastoina (GPIO) GPIOA ja GPIOB. Tämä tarjoaa enemmän joustavuutta, jota voidaan hyödyntää diagnostiikkaledien sytyttämiseen anturin sijaintipaikassa tai anturin tai ADC:n konfigurointinastojen hallintaan laitteen käyttäytymisen muuttamiseksi.

Maxim Integrated DS28E18Q+T:n avulla mikrokontrollerin yksittäinen UART voi kommunikoida vain kahdella johtimella monien antureiden kanssa samassa 1-Wire- sekä -maaväylässä. Kukin anturi on liitetty DS28E18Q+T-piiriin, joka voi olla jopa 100 metrin päässä. Tämä voi olla erityisen hyödyllistä LVI-järjestelmissä, joissa voidaan viedä vain kaksi johdinta ilmakanavan läpi lämpötilan ja kosteuden seuraamiseksi jokaisessa ilma-aukossa kanavan koko pituudelta. Tämä parantaa järjestelmän tehokkuutta ja mahdollistaa esteiden aiheuttamien kuumien tai kylmien kohtien seuraamisen.

1-Wire-kehitys

Kun halutaan aloittaa kehittäminen käyttäen 1-Wire-protokollaa, Maxim Integrated tarjoaa DS28E18EVKIT# DS28E18EVKIT#-evaluointijärjestelmän. Se koostuu laitteiston kehitysalustasta (kuva 2) ja ohjelmistosta.

Kuvassa Maxim DS28E18EVKIT# -evaluointikorttiKuva 2: Maxim DS28E18EVKIT# -evaluointikortin avulla kehittäjä voi helposti liittää SPI- tai I²C-oheislaitteen 1-Wire-väylään. Mukana tulevan ohjelmiston avulla voidaan ohjelmoida ja valvoa väylän ja oheislaitteiden käyttäytymistä sekä luoda mikrokontrollerin laiteajurit. (Kuvan lähde: Maxim Integrated)

Evaluointikortin avulla kehittäjä voi ohjelmoida ja seurata DS28E18Q+T-piiriä. Kehittämistarkoituksia varten kortti sisältää USB-sovittimen, jolla se voidaan liittää Windows-tietokoneen USB-porttiin. Kehittäjän on ladattava ja suoritettava DS28E18EVKIT#-evaluointisarjan ohjelmisto, jota käytetään apuna ohjelmistokehityksessä. Kuten kuvassa 3 näkyy, evaluointiohjelmisto mahdollistaa DS28E18Q+T-piirin ja siihen liitettyjen oheislaitteiden ohjelmoinnin ja monitoroinnin.

Kuvassa Maxim Integrated DS28E18EVKIT -evaluointiohjelmisto (suurenna klikkaamalla)Kuva 3: DS28E18EVKIT#-evaluointiohjelmiston ja USB-sovittimen avulla kehittäjä voi konfiguroida kortille asennetun DS28E18Q+T-piirin ja monitoroida sen toimintaa. 512 tavun komentosekvenssimuisti voidaan täyttää datalla ja lähettää sitten oheislaitteeseen anturitoiminnon suorittamista varten. (Kuvan lähde: Maxim Integrated)

Ohjelmisto voi lähettää komentoja DS28E18Q+T-evaluointikorttiin ja konfiguroida sen SPI- tai I²C-kohdeoheislaitetta varten. Se voi valita oheislaitteen osoitealueen ja täyttää 512 tavun komentosekvensserimuistin suoritettavilla oheislaitekomennoilla. Ohjelmistosta voi myös olla apua UART-ajurien konfiguroinnissa kohdemikrokontrolleria varten, jolloin säästytään 1-Wire-tiedonsiirtoprotokollan kaikkien yksityiskohtien opettelulta. Kehittäjä voi myös käyttää evaluointikorttia omassa sovelluksessaan, mikä säästää anturisolmun luomiseen ja konfigurointiin kuluvaa aikaa ja vaivaa.

Yhteenveto

Kun IoT- ja IIoT-järjestelmiin lisätään antureita, antureiden johdotuksesta tulee monimutkaisempaa ja kalliimpaa erityisesti etäisyyksien kasvaessa. Myös anturien virransyöttö on huolenaihe, joka voi vaikeuttaa anturiverkon luontia. Kuten artikkelissa on esitetty, Maxim Integrated 1-Wire -protokolla ja siihen liittyvä laitteisto voivat helpottaa ja tehostaa anturiverkon liitäntöjen toteuttamista tarjoamalla dataa ja virtaa vain yhdellä johtimella sekä maadoituksella.

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