IoT eli esineiden internet liittää verkkooon 30 miljardia laitetta vuoteen 2020 mennessä. Uusien työkalujen ansiosta TCP/IP-yhteys voidaan tuoda järjestelmiin ilman, että täytyy keskittyä alemman tason toteutuksen yksityiskohtiin.
Artikkelin kirjoittaja Meng He työskentelee Cypress Semiconductorilla markkinointijohtajana. Hänellä on sähkötekniikan tutkinto Marquetten yliopistosta Milwaukeesta. |
IoT eli Internet of Things on nousemassa kaiken sulautetun elektroniikan keskiöön. Valmistajilla on paineita tuoda liitettävyys laajaan valikoimaan laitteita, jotka voivat kommunikoida muiden laitteiden kanssa.
Monikaan kehittäjä ei tiedä, miten toteuttaa vakaa TCP/IP-protokollapino. Tässä artikkelissa tarkastelemme keskeisiä tekijöitä, jotka vaikuttavat internet-yhteyden tuomiseen sulautettuihin laitteisiin. Uusien työkalujen ansiosta TCP/IP-yhteys voidaan tuoda järjestelmiin ilman, että täytyy keskittyä alemman tason toteutuksen yksityiskohtiin.
Katsokaamme ensiksi TCP/IP-protokollaa. TCP/IP (Transmission Control Protocol/Internet Protocol) on yleisin kieli, jolla nettiin liittyneet laitteet siirtävät dataa keskenään. Protokollan säännöt määrittelevät datansiirron päätelaitteiden käyttöjärjestelmien (kuten Windows, Linux, iOS) välillä sekä eräitä spesifejä protokollia, kuten esimerkiksi SMTP, FTP ja HTTP.
TCP/IP jaetaan kerroksiin (layers), kuten allaolevasta kuvasta nähdään. Internet-data reititetään Sovellus-tasolta (Application layer) Siirto-tasolle (Transport layer) ositetussa (data fragments) muodossa. Fyysisessä kerroksessa data siirtyy fyysisesti netin läpi Ethernet-protokollalla, joka on määritelty IEEE 802.3TM-standardissa. Ethernetistä on olemassa useita variantteja, jotka eroavat maksimibittinopeuden, siirtotavan ja siirtotien (kuitu, koaksiaali, jne.) suhteen. MAC eli Media Access Control on keskeinen osa fyysistä kerrosta ja MAC-osoite kuvaa solmun/laitteen fyysistä osoitetta Ethernet-verkoissa. Jokainen Ethernet-kehys sisältää tiedon sekä lähtö- että pääteosoitteesta.
Kuva: Datansiirto Internetissä
Sovelluskerroksessa toteutetaan verkottuneen laitteen käyttöliittymä. Tyypilliset sovellustason protokollat ovat:
1. HTTP, Hyper Text Transfer Protocol. WWW-selaamiseen yhdistetty datansiirto.
2. SMTP, Simple Mail Transfer Protocol. Datansiirto sähköpostien lähetyksessä.
3. FTP, File Transfer Protocol. Tiedostojen siirto netin yli.
4. DNS, Domain Name System. Domain-nimien kääntäminen.
5. DHCP, Dynamic Host Configuration Protocol. IP-osoitteiden dynaaminen osoittaminen laitteille.
6 Telnet. Interaktiivisen TCP-yhteyden luominen laitteeseen.
7. SNTP, Simple Network Time Protocol. Mahdollistaa laitteiden kellon synkronoinnin referenssikellon kanssa.
8. SNMP, Simple Network Management Protocol. Käytetään verkottuneiden laitteiden monitorointiin esimerkiksi vikatilanteissa.
Kaksi sulautetun TCP/IP-pinon yleisintä käyttötapaa ovat viestijärjestelmä ja webbisivun näyttäminen. Yksinkertainen SMTP-pohjainen viestijärjestelmä antaisi mikro-ohjaimen lukea joitakin anturilukemia ja lähettää luetut lukemat sähköpostilla tai muulla viestillä eteenpäin etukäteen määritellyin väliajoin.
Haluamme esimerkiksi tietää lämpötilan talossamme ja haluamme tiedon siitä sähköpostiimme kerran tunnissa. Hieman pidemmälle vietynä sulautettu mikro-ohjain lukee lämpötilan ja tarkistaa, että ovet ja ikkunat on suljettu ja valot sammutettu. Näitä mikro-ohjain valvoo koko päivän. Jos tulemme töistä kotiin myöhään illalla, voimme ottaa HTTP-yhteyden mikro-ohjameen ja saada kaiken informaation webbisivun muodossa. Sen jälkeen voimme sammuttaa valot tietyissä huoneissa, nostaa lämpötilaa ja tehdä monia muita muutoksia webbisivun kenttiä muuttamalla.
Erilaisten järjestelmien vaatimuksiin vastaavan Ethernet-yksikön toteuttamiseen on useita tapoja.
1. Ethernet-ohjainmoduuli.
Ohjainmoduuli, joka sisältää kovakoodatun TCP/IP-piirin, muuntimen ja RJ45-liitännän, voi olla eittäin kätevä suunnittelijalle, joka haluaa tuotteen nopeasti markkinoille houkuttelevalla hinnalla. Moduuli on ihanteellinen kehittäjille, jotka haluavat järjestelmänsä valmiiksi nopeasti. Tällaisia moduuleja ovat esimerkiksi Wiznetin WIZ550io, W5100 ja Rabbit Semiconductorin RCM6760 Monicore -moduulit. Aduino-alustan suosion kasvaessa markkinoille alkaa tulla myös moduuleja, jotka ovat yhteensopivia Arduino-korttien kanssa.
2. TCP/IP ja mikro-ohjain
Suunnittelijat voivat myös liittää TCP/IP-pinon sulautettuun mikro-ohjaimiinsa. Esimerkiksi Microchipin ENC28J60-moduuli voidaan liittää suoraan useimpiin mikro-ohjaimiin SPI-liitännän avulla. Näissä moduuleissa on tyypillisesti erillinen Ethernet-ohjainpiiri, jonka ominaisuudet riittävät käsittelemään valtaosan verkkoprotokollan vaatimuksista. Tällaisia Ethernet-projekteja suunnittelijat voivat jopa jakaa. Esimerkiksi Githubista löytyy projekti, jossa nettiyhteys luodaan Cypressin ohjelmoitavan PSoC-järjestelmäpiirin ja Microchipin ENC2860-moduulin välille. PSoC3-piiriin pohjaavaa ratkaisua voidaan soveltaa myös PSoC5-piirin kanssa.
Katso lisää tästä Github-projektista: http://github.com/
Tällaisen toteutuksen etuna on se, että se vapauttaa PSoC3-ytimen muihin toimintoihin, eikä lisää komponenttimäärää PSoC Creator -työkalulla kehitettäessä. Laitetasolla tarvitaan vain suojattu RJ45-liitäntä, 25 megahertsin kide tai oskillaattoripiiri, sekä muutama passiivikomponentti.
3. Yhden sirun lwIP-ratkaisu
Sulautettuja järjestelmiä varten suunniteltu (lightweight IP) on suosittu avoimen koodin TCP/IP-pino, jota ylläpitää globaali kehittäjien joukko. Useimmissa sovelluksissa lwIP tuo laitteeseen Ethernet-toiminnallisuuden pienentäen samalla mikro-ohjaimen resurssien käyttöä. Toteutus edellyttää, että sekä MAC-ohjain että fyysinen vastaanotinliitäntä (PHY) ovat mikro-ohjaimella. Ratkaisu sopii kehittäjille, jotka haluavat kehittää taloudellisen ratkaisun ja ovat valmiita näkemään vaivaa pinojen selvittämisessä. Kyse on enemmän tee-se-itse -toteutuksesta. Tämän menetelmän haasteena on järjestelmän resurssien käyttö ja kyky osoittaa MAC-osoitteita dynaamisesti. Dynaamisesti uudelleenkonfiguroitava PSoC-piiri antaa tähän mahdollisuuden.
PSoC-järjestelmäpiirin digitaalinen osio koostuu UDB-lohkoista (Universal Digital Blocks) ja sen arkkitehtuuri on yhdistelmä konfiguroitavuutta ja tehokasta toteutusta. Lähestymistavan kulmakivi on mahdollisuus räätälöidä laitteen digitaalinen toiminta niin, että se vastaa sovelluksen vaatimuksia. Esimerkiksi piirille integroidun DMA-muistiohjaimen avulla voidaan suunnitella konfiguroitavat FIFO-osiot lähetin- ja vastaanotinpuolelle. PSoC Creator -työkalun avulla kehittäjä voi rakentaa oman Ethernet-komponentin ja käyttää sitä virtuaalisena komponenttina järjestelmätason suunnittelussa.
Liitettävyys on tulevaisuutta. Kun piirien valmistajat tarjoavat yhä kypsempiä ratkaisuja kehittäjille, voivat nämä valita niin tuotantovalmiita Ethernet-moduuleja kuin yhden siru tee-se-itse -ratkaisuja omien laitteidensa verkkoyhteyden toteutukseen.