Over-the-air firmware update for mission critical embedded devices
Toiviainen, Aarno (2020)
Toiviainen, Aarno
2020
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2020120326028
https://urn.fi/URN:NBN:fi:amk-2020120326028
Tiivistelmä
Sulautetut laitteet ovat tulleet yleisiksi matalampien hintojen ja teknologisten kehitysaskelten johdosta. Sulautettuja laitteita voidaan käyttää kriittisissä systeemeissä, joissa on vaatimuksia ennustettavissa olevalle prosessointiajalle ja luotettavuudelle. Niillä voi myös olla samaan aikaan vaatimuksia virrankäytölle ja hinnalle. Tämän johdosta ohjelmiston luominen näille laitteille voi olla hankalaa. Sulautettujen laitteiden ohjelmisto tarvitsee usein päivityksiä virheiden korjaamisen tai uusien ominaisuuksien lisäämistä varten. Laitteiden suuresta määrästä johtuen voi kuitenkin usein olla epäkäytännöllistä päivittää niitä paikallisesti. Siitä syystä on tarve laiteohjelmiston etäpäivitysjärjestelmälle.
Jotta päivitysdata voidaan siirtää luotettavasti laiteohjelmistopäivitysjärjestelmässä, data pitää vahvistaa tarkistussummilla. Salausta ja todennusta tarvitaan myös, jotta voidaan varmistaa, että data tulee luotetusta lähteestä eikä sitä ole muokattu. Systeemin pitää myös pystyä toipumaan, jos laite menettää virrat päivitysprosessin aikana. Tämä on mahdollista kun käytetään useaa muistipankkia eri ohjelmistoversioiden säilyttämiseksi.
Lopputyön tarkoituksena oli luoda toimiva laiteohjelmistopäivitysjärjestelmä, jota voidaan käyttää kriittisissä järjestelmissä. Systeemissä käytettiin nRF52480-mikrokontrolleria päivitettävänä laitteena ja Raspberry Pi:tä ohjelmistopaketin hakemiseen langattomasti. nRF52480-mikrokontrolleria käytettiin ilman käyttöjärjestelmää ja Raspberry Pi käytti Linux-pohjaista Raspbian-käyttöjärjestelmää. nRF52480 ja Raspberry Pi kommunikoivat UART:in kautta päivityspaketin siirtämistä varten.
Lopputyön tuloksena luotiin toimiva laiteohjelmistopäivitysjärjestelmä. Ohjelmistopaketin siirtämiseksi luotettavasti UART:in kautta käytettiin itsetehtyä protokollaa. Päivityksen varmistamiseen ja asentamiseen käytettiin käynnistyslatainta nRF-ohjelmistokehityspaketista. Järjestelmässä käytettiin kahta muistipankkia, jotta se olisi luotettavampi. Systeemiä testattiin, jotta sen voitiin varmistaa toimivan oikein. Systeemi pystyi toipumaan päivitysprosessin keskeyttämisestä. Systeemi ei pystynyt palautumaan, jos sille lähetettiin viallinen ohjelmisto. Lopputyön lopussa kerrotaan parannuksista, joiden avulla systeemistä voisi tulla luotettavampi.
Jotta päivitysdata voidaan siirtää luotettavasti laiteohjelmistopäivitysjärjestelmässä, data pitää vahvistaa tarkistussummilla. Salausta ja todennusta tarvitaan myös, jotta voidaan varmistaa, että data tulee luotetusta lähteestä eikä sitä ole muokattu. Systeemin pitää myös pystyä toipumaan, jos laite menettää virrat päivitysprosessin aikana. Tämä on mahdollista kun käytetään useaa muistipankkia eri ohjelmistoversioiden säilyttämiseksi.
Lopputyön tarkoituksena oli luoda toimiva laiteohjelmistopäivitysjärjestelmä, jota voidaan käyttää kriittisissä järjestelmissä. Systeemissä käytettiin nRF52480-mikrokontrolleria päivitettävänä laitteena ja Raspberry Pi:tä ohjelmistopaketin hakemiseen langattomasti. nRF52480-mikrokontrolleria käytettiin ilman käyttöjärjestelmää ja Raspberry Pi käytti Linux-pohjaista Raspbian-käyttöjärjestelmää. nRF52480 ja Raspberry Pi kommunikoivat UART:in kautta päivityspaketin siirtämistä varten.
Lopputyön tuloksena luotiin toimiva laiteohjelmistopäivitysjärjestelmä. Ohjelmistopaketin siirtämiseksi luotettavasti UART:in kautta käytettiin itsetehtyä protokollaa. Päivityksen varmistamiseen ja asentamiseen käytettiin käynnistyslatainta nRF-ohjelmistokehityspaketista. Järjestelmässä käytettiin kahta muistipankkia, jotta se olisi luotettavampi. Systeemiä testattiin, jotta sen voitiin varmistaa toimivan oikein. Systeemi pystyi toipumaan päivitysprosessin keskeyttämisestä. Systeemi ei pystynyt palautumaan, jos sille lähetettiin viallinen ohjelmisto. Lopputyön lopussa kerrotaan parannuksista, joiden avulla systeemistä voisi tulla luotettavampi.